分享12个实用的 CSS 小技巧「快来收藏」

CSS(Cascading Style Sheets) 是前端开发中必不可少的一部分,它可以使HTML文档更加美观、可读性更高、并且更具有交互性。本文将分享12个 CSS 实用小技巧,让开发者们能够更快捷地实现常见的 CSS 样式。

1. 使用 after 伪元素代替标记

在编写 HTML中常常需要添加一些标记,如箭头、蒙版、图表等。这时候,我们可以使用 after 伪元素来进行代替标记。

.arrow {

position: relative;

}

.arrow::after {

display: block;

content: '';

width: 0;

height: 0;

border-style: solid;

border-width: 10px 0 10px 10px;

border-color: transparent transparent transparent #000;

position: absolute;

top: 50%;

transform: translateY(-50%);

right: -5px;

}

我们可以这样使用:

<p>这是一段有箭头的文本<span class="arrow"></span></p>

解析:

箭头使用 after 伪元素来实现,在 CSS 中先将容器设置为相对定位,然后在 after 伪元素中将容器设置为绝对定位,并通过 right 属性将箭头从容器中向外侧移动,最后通过 transform 属性使箭头居中对齐。

2. 使用文本溢出省略号

文本太长时,我们通常希望截断文本并在结尾加上省略号,这时候我们可以使用 text-overflow 属性。

.ellipsis {

overflow: hidden;

text-overflow: ellipsis;

white-space: nowrap;

}

将此样式应用到我们想要截断的文本容器中即可:

<p class="ellipsis">这是一段过长的文本,应该被省略掉以保持页面美观度!</p>

解析:

text-overflow 的参数可以为 clip、ellipsis 或 string,其中 clip 表示截断文本但不添加省略号。 ellipsis 表示在结尾处添加省略号,而字符串参数则表示在结尾处添加自定义的字符串。

3. 显示/隐藏滚动条

有时我们需要控制容器内的滚动条是否可见,这时候我们可以使用 ::-webkit-scrollbar 伪元素。

.container::-webkit-scrollbar {

width: 0.5em;

}

.container::-webkit-scrollbar-thumb {

background: #ccc;

border-radius: 5px;

}

.container:hover::-webkit-scrollbar {

width: 0.5em;

}

.container:hover::-webkit-scrollbar-thumb {

background: #333;

}

将此样式应用到容器中即可:

<div class="container">

// 容器内部内容

</div>

解析:

使用 ::-webkit-scrollbar 伪元素可以直接控制滚动条的样式。在上述代码中,width 属性控制滚动条宽度,background 控制滚动条背景颜色,而 border-radius 属性设置滚动条的边角圆角。

4. 实现等高容器

开发中,我们常常需要实现容器等高,在不同容器中浮动元素不会出现高度不同的问题,这时候我们可以使用 display 属性中的 table 属性和 table-cell 属性。

.container {

display: table;

width: 100%;

}

.box {

display: table-cell;

height: 100%;

}

将此样式应用到容器中即可:

<div class="container">

<div class="box"></div>

<div class="box"></div>

<div class="box"></div>

</div>

解析:

在 CSS 中使用 display:table 属性可将一个元素类型转换为表格元素,table-cell 属性表示表格单元格,使得元素以表格的形式排列。这样我们可以在同级容器内实现等高效果。

5. 定位绝对居中

有时候我们需要将元素垂直水平居中,这时候我们可以使用定位偏移和 margin 属性。

.center {

position: absolute;

top: 50%;

left: 50%;

transform: translate(-50%, -50%);

}

将此样式应用到元素中即可:

<div class="center">我是一个垂直水平居中的元素</div>

解析:

position:absolute 属性可以使元素脱离文本流并在父元素中进行绝对定位,top 和 left 属性则决定了元素相对于父元素的位置。最后,通过 translate 属性使元素垂直水平居中。

6. 实现等宽布局

有时候我们需要将多个元素等分容器宽度,可以使用 CSS 的 calc() 函数。

.container {

display: flex;

}

.box {

width: calc((100% / 3) - 10px);

}

将此样式应用到容器中即可:

<div class="container">

<div class="box">1</div>

<div class="box">2</div>

<div class="box">3</div>

</div>

解析:

在上述代码中,100% 表示容器的整个宽度,/3 表示将容器宽度等分为三个部分,-10px 表示元素之间的间距,最后通过 calc() 函数计算出元素的精准宽度。

7. 使用 shadows 制作旋转效果

使用 box-shadow 属性可以制作出旋转效果。

.box {

box-shadow: 60px 60px 0 0 #f00, 120px 120px 0 0 #0f0, 180px 180px 0 0 #00f;

transition: box-shadow 0.3s ease-in-out;

}

.box:hover {

box-shadow: 60px 60px 0 0 #00f, 120px 120px 0 0 #f00, 180px 180px 0 0 #0f0;

}

将此样式应用到元素中即可,其实悬停的时候就是更改 box-shadow 的坐标值。

8. 背景根据图片大小伸展

在使用一张背景图片,而不考虑图片大小时,我们可以使用 background-size 属性实现图片大小的伸缩,使其适应容器大小。

.container {

background: url("图片地址") no-repeat center center;

-webkit-background-size: cover;

-moz-background-size: cover;

-o-background-size: cover;

background-size: cover;

}

将此样式应用到容器中即可。

解析:

background-size 属性控制背景图片的宽高,cover 可以根据容器大小自动将图片等比例放大缩小,使其适应容器大小,而 center 则是控制图片的水平和垂直位置。

9. 垂直居中文字

垂直居中元素中的文字,我们可以使用 text-align 和 line-height 属性实现。

.container {

height: 300px;

line-height: 300px;

text-align: center;

}

将此样式应用到容器中即可。

解析:

line-height 属性设置行高,与容器高度一致。文本之间的间隔就是通过 line-height 来决定的,text-align 属性控制文本水平居中。

10. 只有几个字的垂直居中

当元素中只有几个字时,我们可以使用 ::before 或 ::after 伪元素加上空格,使文字垂直居中。

.container::before {

content: "";

display: inline-block;

height: 100%;

vertical-align: middle;

}

.container span {

display: inline-block;

vertical-align: middle;

}

.container {

height: 300px;

text-align: center;

display: table-cell;

}

将此样式应用到容器中即可。

解析:

在上述代码中,使用 display:table-cell 属性来实现元素等高,当元素中只有一个 span 时,使用 ::before 伪元素来制作一个高度与容器相同的空白块,并使用 vertical-align:middle;铺满就可以使文本垂直居中。

11. 设置 HTML 跟字体大小

当需要设定 HTML 元素中的字体大小,并使得不同设备屏幕下的样式保持一致,可以通过设置浏览器默认字体设置来实现。

html {

font-size: 62.5%;

}

.container {

font-size: 2rem;

}

将此样式应用到容器中即可。

解析:

在上述代码中,首先通过设置浏览器默认字体大小,即 62.5% 转化为 10px,因此以这种设置方式进行缩放时,为了方便,我们一般只需要将 rem 中 1rem 设置为10px即可,这样 2rem 就是20px。

12.涟漪效果

在点击按钮或链接时,使得涟漪特效出来的是实现按钮动画的常见效果。

<a href="#" class="btn">点击我</a>

CSS 样式如下:

.btn {

position: relative;

display: inline-block;

overflow: hidden;

padding: 10px 20px;

border: none;

border-radius: 20px;

background-color: #57B8FF;

color: #fff;

font-size: 18px;

text-align: center;

cursor: pointer;

}

.btn:after {

content: '';

position: absolute;

left: 50%;

top: 50%;

transform: translate(-50%, -50%);

background: rgba(255, 255, 255, 0.3);

border-radius: 50%;

opacity: 0;

pointer-events: none;

width: 10px;

height: 10px;

}

.btn:hover::after {

width: 200%;

height: 200%;

opacity: 1;

transition: all 0.3s;

}

解析:

涟漪特效通过添加一个圆形伪元素实现,在没有悬停时,通过设置圆形伪元素的位置、大小、背景颜色、边框半径、透明度等样式;在悬停时,通过改变宽度、高度、透明度、透明度变化时间等样式实现涟漪特效。

总结:

在前端开发中,CSS技术扮演着重要的角色,学会运用些小技巧,对效果的制作、优化、维护都会有很大提升。常见的一些部分,如标记、滚动条、容器、布局、字体等等,都有相应的 CSS 技巧和方法来实现。拓宽 CSS 技能和知识,才能更好地涵盖页面制作和后端开发。