html表格边框变圆角,table 边框加圆角踩坑

html表格边框变圆角,table 边框加圆角踩坑###1.发现问题看到代码里,关于表格,大家不是很喜欢用原生的table,基本都是div来做。究其原因,大概是table的样式有时候难把控,不像直接操作div那么方便。比如:我们想做一个表格,然后希望这个表格带有边框,且最外层的边框是圆角的。###2\.实践采坑ing####2.1-【踩坑】这是什么鬼,有空隙????**css代码如下:**~~~table{border:1pxso…

### 1.发现问题

看到代码里,关于表格,大家不是很喜欢用原生的table,基本都是div来做。究其原因,大概是table的样式有时候难把控,不像直接操作div那么方便。比如:我们想做一个表格,然后希望这个表格带有边框,且最外层的边框是圆角的。

### 2\. 实践采坑ing

#### 2.1 – 【踩坑】 这是什么鬼,有空隙😳

**css 代码如下:**

~~~

table {

border: 1px solid #d8d8d8;

border-radius: 4px;

}

th,td {

border: 1px solid #d8d8d8;

}

复制代码

~~~

**实际效果如下:**

![带空隙的table](https://user-gold-cdn.xitu.io/2019/10/4/16d94c4ae110f89e?imageView2/0/w/1280/h/960/format/webp/ignore-error/1)

#### 2.2 – 【埋坑】 去掉空隙啦 😁 【踩坑】但是,我的边框小圆角呢?😢

表格之间之所以有空隙是因为table有默认的样式,每个单元格之间都有一定的空隙。 只需要在css里让border重合,去掉空隙就好了。

**css 代码如下:**

~~~

table {

border: 1px solid #d8d8d8;

border-radius: 4px;

/* 消除单元格之间的空隙 */

border-collapse: collapse;

}

th,td {

border: 1px solid #d8d8d8;

}

复制代码

~~~

**效果如下:**

![去掉空隙](https://user-gold-cdn.xitu.io/2019/10/4/16d94d01d2468f15?imageView2/0/w/1280/h/960/format/webp/ignore-error/1)

#### 2.3 – 【埋坑】把小圆角搞回来😈

空隙是没了,但是,小圆角也不见了。 **原来,当我们使用了border-collapse的时候,border-radius属性就不会被应用到表格元素上了**。 So…不如先让外边框整个不见,然后用盒子阴影来做小圆角。

**css 代码如下:**

~~~

table {

border: 1px solid #d8d8d8;

border-radius: 4px;

/* 消除单元格之间的空隙 */

border-collapse: collapse;

/* 消除掉外边框 */

border-style:hidden

}

复制代码

~~~

**消除外边框效果如下:**

![消除外边框](https://user-gold-cdn.xitu.io/2019/10/4/16d94dc63ebd1d9f?imageView2/0/w/1280/h/960/format/webp/ignore-error/1)

#### 距离成功就一步之遥啦😋

使用box-shadow:(X偏移量,Y偏移量,阴影模糊半径,阴影扩展半径,阴影颜色) 我们想让这个阴影替代border,那就把X,Y偏移量以及阴影模糊半径都设置为0,扩展半径就是我们希望的border的粗细。阴影颜色就是希望的border的颜色。这样一个假border就做好了。

**css 代码如下:**

~~~

table {

border: 1px solid #d8d8d8;

border-radius: 4px;

/* 消除单元格之间的空隙 */

border-collapse: collapse;

/* 消除掉外边框 */

border-style:hidden

/* hack一下加个阴影 */

box-shadow: 0 0 0 1px #d8d8d8;

}

复制代码

~~~

![大功告成啦](https://user-gold-cdn.xitu.io/2019/10/4/16d94e4c64546d1a?imageView2/0/w/1280/h/960/format/webp/ignore-error/1)

### 3\. 总结

主要原因是table有一些自定义的样式,导致加个圆角的边框不太容易直接操作。首先要去掉单元格空隙。但是去掉空隙的border-collapse属性会导致border-radius不生效。所以只能隐藏原有边框,用box-shadow阴影做个假边框。

**css 代码如下:**

~~~

table {

border: 1px solid #d8d8d8;

border-radius: 4px;

/* 消除单元格之间的空隙 */

border-collapse: collapse;

/* 消除掉外边框 */

border-style:hidden

/* hack一下加个假边框 */

box-shadow: 0 0 0 1px #d8d8d8;

}

th,td {

border: 1px solid #d8d8d8;

}

复制代码

~~~

### 4.参考资料

1. [box-shadow 属性](https://link.juejin.im?target=https%3A%2F%2Fdeveloper.mozilla.org%2Fzh-CN%2Fdocs%2FWeb%2FCSS%2Fbox-shadow)

关注下面的标签,发现更多相似文章

[

CSS

](/tag/CSS)

[](/user/5d5f9f54e51d4561f95eea54)

[](/user/5d5f9f54e51d4561f95eea54)

[](/user/5d5f9f54e51d4561f95eea54)

链接:https://juejin.im/post/5d96b6afe51d4578495472cd

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/37446.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注