CSS 有很多令人欣喜的小技巧,可以让我们的页面效果更加美丽,现在,就让我们来看看工作中非常实用的 CSS 技巧吧。

一、文本选择颜色

当我们选中网页上的文字时,通常的效果是蓝底白字,其实,底色和字体颜色是可以改变的。

10个非常实用的CSS技巧_锚点 image

我们可以使用伪元素来实现这种效果:

::selection {
background-color: red;
color: gold;
}

二、首字下沉

首字下沉,是否似曾相识呢?哦,是在以前学 word 软件文字排版的时候。在一些报纸上经常都会看见首字下沉的效果,其他文字围绕在它周围。

10个非常实用的CSS技巧_锚点_02 image

看上去还是这么回事。

三、平滑滚动

通过锚点,我们可以滚动到网页特定的位置,原始的锚点跳转是没有过渡效果的。注意滚动条:

10个非常实用的CSS技巧_html_03 image

通过 CSS scroll-behavior 属性可以让滚动变得更加丝滑。

10个非常实用的CSS技巧_css_04 image

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<title></title>
</head>

<style type="text/css">
html {
scroll-behavior:smooth;
}
section {
height: 500px;
text-align: center;
color: #fff;
}
section:nth-child(even) {
background-color: red;
}
section:nth-child(odd) {
background-color: gold;
}
</style>

<body>
<a href="#part1">第一屏</a>
<a href="#part2">第二屏</a>
<a href="#part3">第三屏</a>
<a href="#part4">第四屏</a>

<div class="container">
<section id="part1">这是第一屏内容 </br>前端技术驿站</section>
<section id="part2">这是第二屏内容 </br>前端技术驿站</section>
<section id="part3">这是第三屏内容 </br>前端技术驿站</section>
<section id="part4">这是第四屏内容 </br>前端技术驿站</section>
</div>
</body>
</html>

四、输入插入符号颜色

caret-color 属性可以让我们自定义 input 框闪烁的光标,是不是很神奇鸭

.form-input {
width: 130px;
height: 26px;
padding-left: 10px;
border-radius: 6px;
caret-color: gold;
}

10个非常实用的CSS技巧_锚点_05 image

五、投影

给透明背景图片加背景,感觉很厉害的样子。两行 CSS 样式九搞定咯:

10个非常实用的CSS技巧_锚点_06 image

.img-container img {
width: 200px;
object-fit: cover;
filter: drop-shadow(30px 10px 6px gold);
}

六、自定义滚动条

我们可以修改滚动条的样式,滚动条变得更加炫酷。

.container::-webkit-scrollbar {
/*滚动条整体样式*/
width: 10px;
/*高宽分别对应横竖滚动条的尺寸*/
height: 1px;
}

.container::-webkit-scrollbar-thumb {
/*滚动条里面小方块*/
border-radius: 10px;
background-color: skyblue;
background-image: -webkit-linear-gradient(45deg,
rgba(255, 255, 255, 0.2) 25%,
transparent 25%,
transparent 50%,
rgba(255, 255, 255, 0.2) 50%,
rgba(255, 255, 255, 0.2) 75%,
transparent 75%,
transparent);
}

.container::-webkit-scrollbar-track {
/*滚动条里面轨道*/
box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2);
border-radius: 10px;
background: #ededed;
}

七、禁用用户选择

如果你不想让用户选中页面上的文字,就可以用这个特性了。

.container {
user-select: none;
}

八、伪元素增大点击热区

<style type="text/css">
.btn::before {
content:"";
position:absolute;
top:-10px;
right:-10px;
bottom:-10px;
left:-10px;
}
</style>
<body>
<button class="btn" type="button">点击</button>
</body>

九、IE盒子模型

很多情况下都需要应用到IE盒子模型的特性,让元素的宽度、高度包含border和padding。

box-sizing: border-box;

十、CSS实现换行

//不换行
white-space:nowrap;

//自动换行
word-wrap: break-word;
word-break: normal;

//强制换行
word-break:break-all;