首页
Preview

20 个鲜为人知的 CSS 技巧

前言

CSS 是前端开发不可或缺的一环,虽然我们每天都在使用它,但是我们可能只是用一些基本的 CSS 属性和选择器。本篇文章将介绍 20 个鲜为人知的 CSS 技巧,希望能够帮助读者更好地掌握 CSS。

1. 利用 :not() 伪类选择器

:not() 伪类选择器可以帮助我们选择除了某个元素之外的所有元素。例如:

li:not(.active) {
  color: gray;
}

这里的 CSS 代码会选择除了带有 .active 类的 li 元素之外的所有 li 元素,并将它们的颜色设置为灰色。

2. 利用 :empty 伪类选择器

:empty 伪类选择器可以帮助我们选择不包含任何子元素的元素。例如:

div:empty {
  display: none;
}

这里的 CSS 代码会选择不包含任何子元素的 div 元素,并将它们的 display 属性设置为 none,从而让它们在页面上消失。

3. 利用 :checked 伪类选择器

:checked 伪类选择器可以帮助我们选择被选中的表单元素。例如:

input:checked + label {
  color: red;
}

这里的 CSS 代码会选择被选中的 input 元素的相邻 label 元素,并将它们的颜色设置为红色。

4. 利用 :focus-within 伪类选择器

:focus-within 伪类选择器可以帮助我们选择被焦点元素的父元素。例如:

.form-group:focus-within {
  border: 2px solid #008080;
}

这里的 CSS 代码会选择包含被焦点元素的 form-group 元素,并将它们的边框设置为 2px 的实线,颜色为 #008080。

5. 利用 :nth-child() 伪类选择器

:nth-child() 伪类选择器可以帮助我们选择父元素中的第几个子元素。例如:

li:nth-child(odd) {
  background-color: #f1f1f1;
}

这里的 CSS 代码会选择每个父元素的奇数子元素,并将它们的背景颜色设置为 #f1f1f1。

6. 利用 :before 和 :after 伪元素

:before:after 伪元素可以帮助我们在元素的前后添加内容。例如:

h1:before {
  content: "#";
  margin-right: 5px;
}

这里的 CSS 代码会在每个 h1 元素的前面添加一个 # 号,并设置其右侧的 margin 为 5px。

7. 利用属性选择器

属性选择器可以帮助我们选择带有特定属性的元素。例如:

a[href^="https"] {
  color: green;
}

这里的 CSS 代码会选择所有 href 属性以 https 开头的 a 元素,并将它们的颜色设置为绿色。

8. 利用 :lang() 伪类选择器

:lang() 伪类选择器可以帮助我们选择使用特定语言的元素。例如:

p:lang(zh) {
  font-family: "Microsoft YaHei";
}

这里的 CSS 代码会选择所有使用中文(zh)语言的 p 元素,并将它们的字体设置为“Microsoft YaHei”。

9. 利用 :target 伪类选择器

:target 伪类选择器可以帮助我们选择当前 URL 中锚点指向的元素。例如:

#section1:target {
  background-color: #f1f1f1;
}

这里的 CSS 代码会选择当前 URL 中锚点指向 id 为 section1 的元素,并将它的背景颜色设置为 #f1f1f1。

10. 利用 calc() 函数

calc() 函数可以帮助我们计算长度值。例如:

.container {
  width: calc(100% - 20px);
}

这里的 CSS 代码会将 .container 元素的宽度设置为父元素宽度减去 20px。

11. 利用 attr() 函数

attr() 函数可以帮助我们获取元素的属性值并应用到样式中。例如:

img:after {
  content: attr(alt);
}

这里的 CSS 代码会在每个 img 元素的后面添加其 alt 属性的值。

12. 利用 text-overflow 属性

text-overflow 属性可以帮助我们控制当文本溢出容器时应该如何处理。例如:

.container {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

这里的 CSS 代码会将 .container 元素内的文本截断并以省略号显示。

13. 利用 :first-letter 伪元素

:first-letter 伪元素可以帮助我们选择元素的第一个字母并对其应用样式。例如:

p:first-letter {
  font-size: 2em;
  color: #008080;
}

这里的 CSS 代码会选择每个 p 元素的第一个字母,并将其字体大小设置为 2em,颜色为 #008080。

14. 利用 :first-line 伪元素

:first-line 伪元素可以帮助我们选择元素的第一行并对其应用样式。例如:

p:first-line {
  font-weight: bold;
}

这里的 CSS 代码会选择每个 p 元素的第一行,并将其字体加粗。

15. 利用 pointer-events 属性

pointer-events 属性可以帮助我们控制元素是否响应鼠标事件。例如:

.disabled {
  pointer-events: none;
  opacity: 0.5;
}

这里的 CSS 代码会将 .disabled 元素的鼠标事件响应关闭,并将其透明度设置为 0.5。

16. 利用 filter 属性

filter 属性可以帮助我们为元素添加滤镜效果。例如:

img {
  filter: grayscale(100%);
}

这里的 CSS 代码会将每个 img 元素变成黑白色。

17. 利用 transform 属性

transform 属性可以帮助我们进行元素的旋转、缩放等操作。例如:

.card {
  transform: rotate(10deg);
}

这里的 CSS 代码会将每个 .card 元素旋转 10 度。

18. 利用 box-shadow 属性

box-shadow 属性可以帮助我们为元素添加阴影效果。例如:

.box {
  box-shadow: 5px 5px 5px #888;
}

这里的 CSS 代码会将每个 .box 元素添加一层 5px 的阴影。

19. 利用 animation 属性

animation 属性可以帮助我们为元素创建动画效果。例如:

@keyframes example {
  from {transform: rotate(0);}
  to {transform: rotate(360deg);}
}

.box {
  animation: example 2s infinite;
}

这里的 CSS 代码会将每个 .box 元素旋转 360 度,每次旋转需要 2 秒钟,无限循环。

20. 利用 grid 布局

grid 布局可以帮助我们轻松地实现复杂的网格布局。例如:

.container {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-template-rows: repeat(2, 50px);
  gap: 10px;
}

这里的 CSS 代码会将 .container 元素变成网格容器,每行有 3 列,每列的宽度相等,每行的高度为 50px,每个单元格之间有 10 像素的间隔。

结语

以上是 20 个鲜为人知的 CSS 技巧,希望能够帮助读者更好地掌握 CSS。如果你有任何其他的 CSS 技巧或建议,请在评论区留言,让我们一起分享。

版权声明:本文内容由TeHub注册用户自发贡献,版权归原作者所有,TeHub社区不拥有其著作权,亦不承担相应法律责任。 如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

点赞(0)
收藏(0)
eladmag
此时的想法仅为此时

评论(0)

添加评论