CSS鲜为人知的小tips

646 阅读3分钟

CSS鲜为人知的小tips

标准的制定过程

​ 与大众的理解大相径庭的是,W3C 并不“生产”标准。实际上,它扮演的是一个论坛的角色:W3C 以工作组的方式,把某项技术的相关各方聚 集起来,最终由他们来产出标准。当然,W3C 并不只是一个观察者:它设定了整个平台的规则,监督整个进程。但这些技术规范(基本上)并不是由 W3C 的工作人员编写完成的。 CSS 规范通常是由 CSS 工作组的成员来编写的。

在编写本书时,CSS 工作组共有 98 名成员,人员结构如下:

  • 86 名来自 W3C 会员公司的成员(88%)
  • 7 名特邀专家(7%)
  • 5 名 W3C 工作人员(5%)

一行文字放不下,超出文本以省略号显示

p {
    border: 2px solid;
    width: 200px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

双层边框效果

方式一:

.box1 {
    width: 400px;
    height: 200px;
    background: yellowgreen;
    border: 10px solid #655;
    /*描边*/
    outline: 50px solid deeppink;
}

这种方式优点在于边框样式比较灵活;还可以通过outline-offset调整描边出现的位置。

方式2

.box1 {
    width: 400px;
    height: 200px;
    background: yellowgreen;
    box-shadow:
        0 0 0 10px #655,
        0 0 0 15px deeppink;
}

使用box-shadow模拟的边框可以通过添加多个阴影效果实现多重边框,依次往后,只需调大第三个参数即可,需要注意这两种方式实现的边框并不能有点击效果,也不会影响其他元素的布局。

background-position 的扩展语法

如果你想让图片在距离右边20px,底部40px的位置,可以这样写:

.box2 {
    width: 400px;
    height: 400px;
    border: 2px solid;
    background-image: url('./love.jpeg');
    background-repeat: no-repeat;
    background-position: right 20px bottom 40px;
}

11CA8A1C-D5CD-4363-9688-029D2C23D197.png

background-origin

默认情况下,background-position设置right、top这样的值时,是相对于padding-box偏移的,如下:

.box2 {
    width: 400px;
    height: 400px;
    border: 20px solid;
    background-image: url('./love.jpeg');
    background-repeat: no-repeat;
    background-position: right 20px bottom 40px;
    padding: 50px;
}

1FA87BC3-A390-4DF6-B8A0-A9F0D7E06BEE.png

你可以通过修改background-origin的属性值,使他相对于内容盒或者边框盒偏移,也就是说background-origin的默认值是padding-box它还有两个属性值是border-box和content-box

.box2 {
    width: 400px;
    height: 400px;
    border: 20px solid;
    background-image: url('./love.jpeg');
    background-repeat: no-repeat;
    background-position: right 20px bottom 40px;
    padding: 50px;
    background-origin: content-box;
}

20220517114138.jpg

文本行的斑马条纹

有的时候为了让读者更好的看清每一行的内容,可以给文本设置斑马纹的背景颜色。

.text {
    width: 400px;
    padding: .5em;
    line-height: 1.5;
    background: beige;
    background-size: auto 3em;
    background-origin: content-box;
    background-image:
        linear-gradient(rgba(0, 0, 0, .2) 50%, transparent 0);
}

image-20220523163328787.png

需要注意,每一次调 line-heigh 时,均需要同时修改 background-size 的值。

如果你也喜欢研究写各种样式,如果你也喜欢CSS,推荐阅读一下《CSS揭秘》这本书。