有趣且实用的 CSS 小技巧(上)

简介: 今天来看一些有趣且实用的 CSS 小技巧!

1. 打字效果


代码实现:

<div class="wrapper">
    <div class="typing-demo">
      有趣且实用的 CSS 小技巧
    </div>
</div>
复制代码


.wrapper {
  height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
}
.typing-demo {
  width: 22ch;
  animation: typing 2s steps(22), blink .5s step-end infinite alternate;
  white-space: nowrap;
  overflow: hidden;
  border-right: 3px solid;
  font-family: monospace;
  font-size: 2em;
}
@keyframes typing {
  from {
    width: 0
  }
}
@keyframes blink {
  50% {
    border-color: transparent
  }
}
复制代码


实现效果:

网络异常,图片无法展示
|


2. 设置阴影


当使用透明图像时,可以使用 drop-shadow() 函数在图像上创建阴影,而不是使用 box shadow 属性在元素的整个框后面创建矩形阴影:

<div class="wrapper">
  <div class="mr-2">
    <div class="mb-1 text-center">
      box-shadow
    </div>
    <img class="box-shadow" src="https://markodenic.com/man_working.png" alt="Image with box-shadow">
  </div>
  <div>
    <div class="mb-1 text-center">
      drop-shadow
    </div>
    <img class="drop-shadow" src="https://markodenic.com/man_working.png" alt="Image with drop-shadow">
  </div>
</div>
复制代码


.wrapper {
  height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
}
.mr-2 {
  margin-right: 2em;
}
.mb-1 {
  margin-bottom: 1em;
}
.text-center {
  text-align: center;
}
.box-shadow {
  box-shadow: 2px 4px 8px #585858;
}
.drop-shadow {
  filter: drop-shadow(2px 4px 8px #585858);
}
复制代码


对比效果:

网络异常,图片无法展示
|


3. 平滑滚动


无需 JavaScript 即可实现平滑滚动,只需一行 CSS:scroll-behavior: smooth;

<nav>
  Scroll to: 
  <a href="#sectionA" class="link bg-red">A</a>
  <a href="#sectionB" class="link bg-blue">B</a>
  <a href="#sectionC" class="link bg-green">C</a>
</nav>
<div class="wrapper">
  <div id="sectionA" class="section bg-red">A</div>
  <div id="sectionB" class="section bg-blue">B</div>
  <div id="sectionC" class="section bg-green">C</div>
</div>
复制代码


html {
  scroll-behavior: smooth;
}
nav {
  position: fixed;
  left: calc(50vw - 115px);
  top: 0;
  width: 200px;
  text-align: center;
  padding: 15px;
  background: #fff;
  box-shadow: 0 2px 5px 1px rgba(0, 0, 0, 0.2);
}
nav .link {
  padding: 5px;
  color: white;
}
.section {
  height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 5em;
  text-shadow:
    0px 2px 0px #b2a98f,
    0px 4px 3px rgba(0,0,0,0.15),
    0px 8px 1px rgba(0,0,0,0.1);
}
.bg-red {
  background: #de5448;
}
.bg-blue {
  background: #4267b2;
}
.bg-green {
  background: #4CAF50;
}
复制代码


实现效果:

网络异常,图片无法展示
|


4. 自定义光标


我们可以使用自定义图像,甚至表情符号来作为光标。

<div class="wrapper">
  <div class="tile">
    Default
  </div>
  <div class="tile tile-image-cursor">
    Image
  </div>
  <div class="tile tile-emoji-cursor">
    Emoji
  </div>
</div>
复制代码


.wrapper {
  display: flex;
  height: 100vh;
  align-items: center;
  justify-content: center;
  background: #4776e6;
  background: linear-gradient(to right, #4776e6, #8e54e9);
  padding: 0 10px;
}
.tile {
    width: 200px;
    height: 200px;display: flex;
    align-items: center;
    justify-content: center;
    background-color: #de5448;
    margin-right: 10px;color: #fff;
    font-size: 1.4em;
    text-align: center;
  }
.tile-image-cursor {
  background-color: #1da1f2;
  cursor: url(https://picsum.photos/20/20), auto;
}
.tile-emoji-cursor {
  background-color: #4267b2;
  cursor: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg'  width='40' height='48' viewport='0 0 100 100' style='fill:black;font-size:24px;'><text y='50%'>🚀</text></svg>"), auto;
}
复制代码


实现效果:

网络异常,图片无法展示
|


5. 截断文本


一行文本溢出隐藏:

<div>
  白日依山尽,黄河入海流。欲穷千里目,更上一层楼。
</div>
复制代码


div {
  width: 200px;
  background-color: #fff;
  padding: 15px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
复制代码


实现效果:

网络异常,图片无法展示
|


还可以使用“-webkit-line-clamp”属性将文本截断为特定的行数。文本将在截断的地方会显示省略号:

div {
  width: 200px;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}
复制代码


实现效果:

网络异常,图片无法展示
|


6. 自定义选中样式


CSS 伪元素::selection,可以用来自定义用户选中文档的高亮样式。

<div class="wrapper">
  <div>
    <p>
     默认高亮
    </p>
    <p class="custom-highlighting">
      自定义高亮
    </p>
  </div>
</div>
复制代码


.wrapper {
  height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
}
p {
  font-size: 2rem;
  font-family: sans-serif;
}
.custom-highlighting::selection {
  background-color: #8e44ad;
  color: #fff;
}
复制代码


实现效果:

网络异常,图片无法展示
|

网络异常,图片无法展示
|


相关文章
|
前端开发
css实现帘幕效果
css实现帘幕效果
81 0
|
前端开发
|
2月前
|
前端开发
CSS枫叶纷飞
CSS枫叶纷飞
44 1
|
5月前
|
前端开发 JavaScript
CSS
【6月更文挑战第25天】CSS。
35 0
|
6月前
|
XML 前端开发 数据格式
初识CSS
CSS(Cascading Style Sheets)是一种用于给结构化文档(如HTML或XML)添加样式(如字体、间距和颜色)的编程语言。它通过使用选择器来指定样式,例如ID选择器 (#id)、类选择器 (.class) 和标签选择器 (element)。样式可以写在外部CSS文件中,然后在文档中引用,或者直接内联于HTML元素。当需要应用多个样式时,可以使用优先级来决定哪些样式生效。CSS还支持设置字体、浮动布局、内边距和外边距等属性,以及实现文本和元素的居中对齐。通过组合这些特性,开发者可以创建出复杂的网页布局和视觉效果。
|
前端开发 安全 容器
CSS(2)
在 CSS 中,可以根据选择器的类型把选择器分为基础选择器和复合选择器,复合选择器是建立在基础选择器之上,对基本选择器进行组合形成的。 复合选择器可以更准确、更高效的选择目标元素(标签)。 复合选择器是由两个或多个基础选择器,通过不同的方式组合而成的。 常用的复合选择器包括:后代选择器、子选择器、并集选择器、伪类选择器等等。
55 1
|
前端开发
CSS内嵌式
CSS内嵌式
60 0
|
前端开发
CSS3介绍
CSS3介绍
93 0
CSS3介绍
|
前端开发
初识css
初识css
117 0