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

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

7. CSS 模态框


我们可以使用 CSS 中的 :target 伪元素来创建一个模态框。

<div class="wrapper">
    <a href="#demo-modal">Open Modal</a>
</div>
<div id="demo-modal" class="modal">
    <div class="modal__content">
        <h1>CSS Modal</h1>
        <p>hello world</p>
        <a href="#" class="modal__close">&times;</a>
    </div>
</div>
复制代码


.wrapper {
  height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(to right, #834d9b, #d04ed6);
}
.wrapper a {
  display: inline-block;
  text-decoration: none;
  padding: 15px;
  background-color: #fff;
  border-radius: 3px;
  text-transform: uppercase;
  color: #585858;
  font-family: 'Roboto', sans-serif;
}
.modal {
  visibility: hidden;
  opacity: 0;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(77, 77, 77, .7);
  transition: all .4s;
}
.modal:target {
  visibility: visible;
  opacity: 1;
}
.modal__content {
  border-radius: 4px;
  position: relative;
  width: 500px;
  max-width: 90%;
  background: #fff;
  padding: 1em 2em;
}
.modal__close {
  position: absolute;
  top: 10px;
  right: 10px;
  color: #585858;
  text-decoration: none;
}
复制代码


实现效果:

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


8. 空元素样式


可以使用 :empty 选择器来设置完全没有子元素或文本的元素的样式:

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


.wrapper {
  height: 100vh;
  display: flex;
  justify-content: center;
  align-items: center;
}
.box {
  display: inline-block;
  background: #999;
  border: 1px solid #585858;
  height: 200px;
  width: 200px;
  margin-right: 15px;
}
.box:empty {
  background: #fff;
}
复制代码


实现效果:

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


9. 创建自定义滚动条


<div class="wrapper">
    <div>
      <div class="tile mr-1">
        <div class="tile-content">
          默认滚动条
        </div>
      </div>
      <div class="tile tile-custom-scrollbar">
        <div class="tile-content">
          自定义滚动条
        </div>
      </div>
    </div>
</div>
复制代码


.wrapper {
  height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
}
.mr-1 {
  margin-right: 1em;
}
.tile {
  overflow: auto;
  display: inline-block;
  background-color: #ccc;
  height: 200px;
  width: 180px;
}
.tile-custom-scrollbar::-webkit-scrollbar {
  width: 12px;
  background-color: #eff1f5;
}
.tile-custom-scrollbar::-webkit-scrollbar-track{
  border-radius: 3px;
  background-color: transparent;
}
.tile-custom-scrollbar::-webkit-scrollbar-thumb{
  border-radius:5px;
  background-color:#515769;
  border:2px solid #eff1f5
}
.tile-content {
  padding: 20px;
  height: 500px;
}
复制代码


实现效果:

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


10. 动态工具提示


可以使用 CSS 函数 attr() 来创建动态的纯 CSS 工具提示 。

<h1>
  HTML/CSS tooltip
</h1>
<p>
  Hover <span class="tooltip" data-tooltip="Tooltip Content">Here</span> to see the tooltip.
</p>
<p>
  You can also hover <span class="tooltip" data-tooltip="This is another Tooltip Content">here</span> to see another example.
</p>
复制代码


.tooltip {
  position: relative;
  border-bottom: 1px dotted black;
}
.tooltip:before {
  content: attr(data-tooltip); 
  position: absolute;
  width: 100px;
  background-color: #062B45;
  color: #fff;
  text-align: center;
  padding: 10px;
  line-height: 1.2;
  border-radius: 6px;
  z-index: 1;
  opacity: 0;
  transition: opacity .6s;
  bottom: 125%;
  left: 50%;
  margin-left: -60px;
  font-size: 0.75em;
  visibility: hidden;
}
.tooltip:after {
  content: "";
  position: absolute;
  bottom: 75%;
  left: 50%;
  margin-left: -5px;
  border-width: 5px;
  border-style: solid;
  opacity: 0;
  transition: opacity .6s;
  border-color: #062B45 transparent transparent transparent;
  visibility: hidden;
}
.tooltip:hover:before, 
.tooltip:hover:after {
  opacity: 1;
  visibility: visible;
}
复制代码


实现效果:

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

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


11. 圆形渐变边框


<div class="box gradient-border">
  炫酷渐变边框
</div>
复制代码


.gradient-border {
  border: solid 5px transparent;
  border-radius: 10px;
  background-image: linear-gradient(white, white), 
    linear-gradient(315deg,#833ab4,#fd1d1d 50%,#fcb045);
  background-origin: border-box;
  background-clip: content-box, border-box;
}
.box {
  width: 350px;
  height: 100px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 100px auto;
}
复制代码

实现效果:


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


12. 灰度图片


可以使用 grayscale() 过滤器功能将输入图像转换为灰度。

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


相关文章
|
前端开发
|
前端开发
|
8月前
|
前端开发 JavaScript
CSS
【6月更文挑战第25天】CSS。
45 0
|
9月前
|
存储 前端开发
什么是 CSS
什么是 CSS。
64 6
|
9月前
|
前端开发
CSS知识文章
CSS知识文章
|
前端开发 JavaScript UED
CSS 20大酷刑(三)
CSS 20大酷刑(三)
纯CSS3实现一个丝带效果
纯CSS3实现一个丝带效果
130 0
|
Web App开发 前端开发 JavaScript
CSS(1)
CSS是层样式表(Cascading Style Sheets)的简称。 有时我们也会称之为CSS样式表或级联样式表。 CSS 是也是一种标记语言。 CSS 主要用于设置 HTML 页面中的**文本内容**(字体、大小、对齐方式)、图片的外形(宽高、边框样式、边距等)以及版面的布局和外观显示样式。 CSS 让我们的网页更加丰富多彩,布局更加灵活自如。简单理解:CSS 可以美化HTML,让HTML更漂亮,让页面布局更简单。 CSS最大价值:由HTML专注去做结构呈现,样式交给CSS,即结构(HTML)与样式(CSS)相分离。
59 1
|
Web App开发 存储 前端开发