开发者社区> 前端充电宝> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

有趣且实用的 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;
}
复制代码


实现效果:

image


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;
}
复制代码


实现效果:

image


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;
}
复制代码


实现效果:

image


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;
}
复制代码


实现效果:

image

image


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;
}
复制代码

实现效果:


image


12. 灰度图片


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

image


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
常用 CSS(上)
常用 CSS(上)
0 0
正值初夏,用CSS画一个七彩风车
正值初夏,用CSS画一个七彩风车
0 0
css中使用蒙层会带来哪些问题。
css中使用蒙层会带来哪些问题。
0 0
CSS 快速实现烟花绽放🎆
CSS 快速实现烟花绽放🎆
0 0
CSS,注意点!!!!!!!
css   一、整体布局   1、创建一个html标签   2、创建三个div标签(分别是网页的头部,中间,和底部三部分)   3、一般都用class选择器   4、用css给body标签加个 margin:0(用于消除body边框和浏览器间的空白部分)   5、使div(块...
582 0
css :before :after
p:before是在p标签里面的前部分,after是在p标签里面的后部分 &lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;style&gt; p:before {content:"前面:";background-color: #FF0000; } p:after {content:"后面:";background
852 0
文章
问答
文章排行榜
最热
最新
相关电子书
更多
零基础CSS入门教程
立即下载
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载