CSS——把“可以动的盒子”更优雅地展示:① “伪元素”妙用

栏目: CSS · 发布时间: 5年前

内容简介:前言:“伪元素”在我们创建样式的时候用处很多,它可以大大简化我们的代码量,还可以做一些出乎意料的动作。用于创建一些不在文档树中的元素,并为其添加样式。
本文推荐 PC 端阅读~

本文版权归 “公众号 | 前端一万小时” 所有,未经授权,请勿转载!
复制代码
CSS——把“可以动的盒子”更优雅地展示:① “伪元素”妙用
css_12
复制代码
CSS——把“可以动的盒子”更优雅地展示:① “伪元素”妙用
1. 如何使用伪元素来清除浮动?
2. 可以通过哪些方法优化 CSS3 animation 渲染?
复制代码

前言:“伪元素”在我们创建样式的时候用处很多,它可以大大简化我们的代码量,还可以做一些出乎意料的动作。

1 认识“伪元素”

1.1 伪元素

用于创建一些不在文档树中的元素,并为其添加样式。

:link:源码及效果展示

html

<body>
  <h6>Hello,Oli的前端一万小时</h6>
  <p>Oli的前端一万小时</p>
  <input type="text" placeholder="Oli的前端一万小时">
</body>
复制代码

css

h6::first-letter{
  font-size: 20px;
}    
/*:rocket:如果我们不用伪元素,我们就会在 html 中用更多的代码表示--如加 span ,
然后再在 css 中对 span 加样式。
*/ 


h6::after{
  content: '@2018'
}
/*:rocket:可以很直接的在 h6 后边添加内容。*/
/*:rocket:但一定要注意,这个 content 里边可以是空字符串,
但 content 必须要写,不然这个伪元素就没有效了。
*/


p::selection{
  color: red;
}

input::-webkit-input-placeholder{
  color: blue
}
/*:rocket:对于 placeholder ,不同浏览器写法可能是不一样的,
这里对于 chrome 浏览器我们前边要加上 -webkit- ,以及 input- 。
*/
复制代码
CSS——把“可以动的盒子”更优雅地展示:① “伪元素”妙用

1.2 ::before / ::after

  • element::before 在 element 内部创建一个 行内元素 ,作为 element 的第一个孩子;
  • element::after 在 element 内部创建一个 行内元素 ,作为 element 的最后一个孩子;
  • ::before   ::after  的目的是为了省标签;
  • 其中 content  是必不可少的。

2 伪元素的用法

2.1 清除浮动

:link:源码及效果展示 html

<body>
  <ul class="navbar clearfix">
    <li><a href="#">首页</a></li>
    <li><a href="#">文章</a></li>
    <li><a href="#">作品</a></li>
    <li><a href="#">关于</a></li>
  </ul>
</body>
复制代码

css

li {
  list-style: none;
}
.clearfix::after {
  content:'';
  display: block;
  clear: both;
}

.navbar {
  background: #000;
}
.navbar>li {
  float: left;
  margin: 5px 10px;;
}
.navbar a {
  color: #fff;
}
复制代码

2.2 替代标签

:trophy:前置知识:注意代码中关于 CSS3 属性 transform 的值 translate rotate 用法讲解!

div {
  transform: 值
}
复制代码
常用“值” 描述
translateX(45px) 水平向右平移 45px 。
translateY(45px) 垂直向下平移 45px .
rotate(angle) 定义 2D 旋转,在参数中规定角度。
rotate3d(x,y,z,angle) 定义 3D 旋转。
rotateX(angle) 定义绕着 X 轴的 3D 旋转。
rotateY(angle) 定义绕着 Y 轴的 3D 旋转。
rotateZ(angle) 定义绕着 Z 轴的 3D 旋转。

(:bulb:图片:绕 Z 轴的 3D 旋转:)

CSS——把“可以动的盒子”更优雅地展示:① “伪元素”妙用

2.2.1 空心上三角

CSS——把“可以动的盒子”更优雅地展示:① “伪元素”妙用

:bulb:前置知识:通过 CSS 画“三角形”—— 《CSS——CSS 给盒子、背景、链接、列表、表单、表格等加样式》

:link:源码及效果展示 :bulb:小技巧:控制台调节偏移度

CSS——把“可以动的盒子”更优雅地展示:① “伪元素”妙用

html

<div class="bubble">Hello,Oli的前端一万小时</div>
复制代码

css

.bubble {
/*我们先对边框加样式*/

  position: relative;
/*:rocket::rocket:为下边的绝对定位增加一个锚点。*/

  padding: 10px;
  border-radius: 3px;
  background: #fff;
  border: 1px solid #000;
  display: inline-block;
}

.bubble::before {
  content:'';
/*这个伪元素选择器的意思就是:在 bubble 内部创建一个行内元素,
作为 bubble 的第一个孩子。*/
/*其实就是我们要的那个“小三角”。*/

  width: 10px;
  height: 10px;
  border-top: 1px solid #000;
  border-left: 1px solid #000;
/*:trophy:我们加了上边框和左边框,想象一下,一个块,加了这两个边框然后对其旋转,
它就会呈现出一个“三角”。*/

  background: #fff;
  display: inline-block;

  transform: rotateZ(45deg);
/*:trophy:这里使用的是 CSS3 的属性,让上边加了边框的块绕 Z 轴去“45°旋转”。*/
/*:trophy:Z 轴可以这样理解:
  你的显示器屏幕是一个平面,它由 X 和 Y 轴构成,而你的“视线”与显示器这个平面之间的直线,则为 Z 轴 。
  我们这里就可以简单的绕着这个 Z 轴来旋转!
*/

  position: absolute;
  top: -6px;
/*设置为绝对定位,使其脱离文档流,然后让他向上偏移。*/
/*:rocket::rocket:一旦设置了绝对定位,那么就需要在其父容器上设置一个“锚点”来偏移。*/
/*至于到底偏移多少合适,我们常常采用的方法是:通过检查元素的方式,
在开发者 工具 后台,用鼠标滚动到最合适的位置。*/
}
复制代码
CSS——把“可以动的盒子”更优雅地展示:① “伪元素”妙用

:trophy:举一反三:

2.2.2 实心上三角

CSS——把“可以动的盒子”更优雅地展示:① “伪元素”妙用

:link:源码及效果展示 html

<div class="bubble">Hello,Oli的前端一万小时</div>
复制代码

css

.bubble {
  position: relative;
  padding: 10px;
  border-radius: 3px;
  background: #fff; 
  border: 1px solid #000;
  display: inline-block;
}

.bubble::before {
  content:'';
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 0 10px 10px 10px;
  border-color: transparent transparent grey transparent;
  position: absolute;
  top: -10px;
}
复制代码

2.2.3 红心内右角

CSS——把“可以动的盒子”更优雅地展示:① “伪元素”妙用

:link:源码及效果展示 html

<div class="bubble">Hello,Oli的前端一万小时</div>
复制代码

css

.bubble {
  position: relative;
  padding: 10px;
  border-radius: 3px;
  background: #fff; 
  border: 1px solid #000;
  display: inline-block;
}

.bubble::before {
  content:'';
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 0 10px 10px 0;
  border-color: transparent red transparent transparent;
  position: absolute;
  right: 0;
  top: 0;
}
复制代码

2.3 延伸——伪类选择器的应用

CSS——把“可以动的盒子”更优雅地展示:① “伪元素”妙用

:link:源码及效果展示 html

今天的心情: <input type="checkbox">
复制代码

css

input[type=checkbox] {
  -webkit-appearance: none;
/*去掉默认样式--一个框*/

  appearance: none;
  background: url(https://ws3.sinaimg.cn/large/006tNc79gy1g202mt54g5j30ng0lytjq.jpg) 0 0 no-repeat;
  display: inline-block;
  width: 50px;
  height: 50px;
  background-size: contain;
  vertical-align: middle;
/*为了使其和前面的文字对齐*/

  outline: none;
}

input[type=checkbox]:checked {
/*伪类选择器:对一个 checkbox 或 radio 勾选上的状态。*/
/*那当我们用鼠标去勾选的时候,它就会显示成以下的样式。*/

  -webkit-appearance: none;
  appearance: none;
  background: url(https://ws4.sinaimg.cn/large/006tNc79gy1g202mpw81hj30jc0jaqac.jpg) 0 0 no-repeat;
  display: inline-block;
  width: 50px;
  height: 50px;
  background-size: contain;
  vertical-align: middle;     
}
复制代码

后记:下一篇我们总结一下实际工作中,让盒子“居中”摆放都有哪些方法。属于特别重要的篇幅,随时都会用到。

加油!


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

娱乐至死

娱乐至死

[美] 尼尔·波兹曼 / 章艳 / 广西师范大学出版社 / 2011-6 / 29.80元

《娱乐至死》是对20世纪后半叶美国文化中最重大变化的探究和哀悼:印刷术时代步入没落,而电视时代蒸蒸日上;电视改变了公众话语的内容和意义;政治、宗教、教育和任何其他公共事务领域的内容,都不可避免的被电视的表达方式重新定义。电视的一般表达方式是娱乐。一切公众话语都日渐以娱乐的方式出现,并成为一种文化精神。一切文化内容都心甘情愿地成为娱乐的附庸,而且毫无怨言,甚至无声无息,“其结果是我们成了一个娱乐至死......一起来看看 《娱乐至死》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具