Css必知的底层知识和技巧有哪些

发布时间:2021-10-23 09:40:58 作者:iii
来源:亿速云 阅读:118

这篇文章主要介绍“Css必知的底层知识和技巧有哪些”,在日常操作中,相信很多人在Css必知的底层知识和技巧有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Css必知的底层知识和技巧有哪些”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

Css必知的底层知识和技巧有哪些

一.css尺寸

1.首选最小宽度–实现复杂图形效果

因此,我们可以根据这个它特性,去实现一些复杂的图形,如下:

 Css必知的底层知识和技巧有哪些

当鼠标经过时,变成了下面的样子:

Css必知的底层知识和技巧有哪些

代码如下:

.minW{     display: inline-block;     width: 0 }  .minW::before {     content: "love 你 love";     color: transparent;     outline: 2px solid #cd0000; }  .minW:hover::before{     content: "你 love 我";     color: transparent;     outline: 2px solid #cd0000; }

我们会发现,当容器宽度设置为0后,由于首选宽度的影响,出现了基于文字空间的形状。

2.2.子元素宽度设为100%时的奇怪现象原理探究

 Css必知的底层知识和技巧有哪些

.box{     display: inline-block;     white-space: nowrap; }     .text{     display: inline-block;     width: 100%; }

理论上父元素宽度应该是子元素宽度之和,但是却出现了上图的现象,原因归根就在于浏览器渲染的顺序:自外而内,这点十分重要。

3.如何让元素支持height:100%效果

方法如下:

4.任意高度元素的展开收起动画(max-height/min-height)

 Css必知的底层知识和技巧有哪些

要想实现如上图所示的展开收起动画,就可以使用max-height/min-height:

.nav > .sub-nav{     max-height: 0;     overflow: hidden;     transition: max-height .6s cubic-bezier(.17,.67,.76,1.41) } .nav:hover > .sub-nav{     max-height: 400px; }

二.内联元素深入探究

常见的内联元素有:display设置为inline,inline-block,inline-table的元素 内联盒模型:

  1. 内容区域:可以理解为文本选中的背景色区域(重点)

  2. 内联盒子:内联标签或者纯文本

  3. 行框盒子:由内联盒子组成的一行,每一行就是一个行框盒子

  4. 包含盒子:由行框盒子组成的盒子  幽灵空白节点:在HTML5文档声明中,内联元素的解析和渲染表现就像每个行框盒子的前面有一个空白节点一样。如下案例所示:

Css必知的底层知识和技巧有哪些

三.深入理解content

1.在web中,很多替换元素在没有明确尺寸设定的情况下,其默认的尺寸(不包含边框)为300*150,如video,iframe,canvas等,少数为0,如img,而表单元素的替换尺寸和浏览器自身有关。

2.对于img元素,如果有css尺寸,则最终尺寸由css尺寸决定(css尺寸 > html尺寸 > 固有尺寸)

3.当图片的src属性缺省时,图片不会有任何请求,是最高效的实现方式,如下展示的是使用此方式的图片占位代码(对于firefox浏览器,src缺省的img是一个普通的内联元素,宽高设置无效):

img { visibility: hidden; } img[src] { visibility: visible; }

1.实现换行

::after{    content: '\A';    white-space: pre; }

2.实现正在加载动画

Css必知的底层知识和技巧有哪些
.dot{    display: inline-block;    width: 8em;    height: 1em;    line-height: 1;    text-align: left;    vertical-align: -.25em;    overflow: hidden; } .dot::after{    display: block;    margin-left: 5.2em;    content: '...\A..\A.';    white-space: pre-wrap;    animation: dot 3s infinite step-start both; } @keyframes dot{    33% { transform: translateY(-3em);}    66% { transform: translateY(-2em);}    99% { transform: translateY(-1em);} }

3.属性值内容生成

Css必知的底层知识和技巧有哪些
<div class="icon" data-tip="江小白"></div> /* 可以使用原生属性和自定义属性 */ .icon::after{     content: attr(data-tip); }

4.计数器属性---纯css实现技术器效果

Css必知的底层知识和技巧有哪些

Css必知的底层知识和技巧有哪些

Css必知的底层知识和技巧有哪些

.box1{     counter-reset: count1; } .xigua:checked::before{     content: counter(count1);     counter-increment: count1;     position: absolute;     color: transparent; } .box1::after{     content: counter(count1); } </style> <div class="counter">     <div class="box1">         <div>西瓜<input class="xigua" type="checkbox" /></div>         <div>香蕉<input class="xigua" type="checkbox" /></div>         <div>萝卜<input class="xigua" type="checkbox" /></div>     </div> </div>

四.padding深入研究

1.对于盒模型设置为box-sizing: border-box的元素,如果padding足够大,那么width将失效:

Css必知的底层知识和技巧有哪些
width: 200px; padding-left: 120px; padding-right: 120px; box-sizing: border-box;

2.对于内联元素,padding对视觉层和布局层都会有影响,如果父元素设置overflow:auto,则内联子元素的垂直padding可能会使父元素出现滚动条,否则如果父元素不设置设置overflow,只会在垂直方向上发生重叠,不会影响布局:

Css必知的底层知识和技巧有哪些
/* 父元素设置 */ .pd-2-1{     overflow: auto; } .pd-2-1 > span{     padding-top: 1em;     padding-bottom: 1em; }

3.padding的实际应用(具体实现可自行思考)

4.利用padding百分比值实现等比例缩放图片效果:

.pd-3{     padding: 10% 50%;     position: relative; } .pd-3 img{     position: absolute;     width: 100%;     height: 100%;     left: 0;     top: 0; }

** 注:内联元素的垂直padding会让幽灵空白节点显现,此时可考虑设置font-size:0

5.padding与图形绘制

Css必知的底层知识和技巧有哪些
 /* 菜单 */  .icon-menu{     display: inline-block;     width: 120px;     height: 10px;     padding: 35px 0;     border-bottom: 10px solid;     border-top: 10px solid;     background-clip: content-box;     background-color: currentColor; } /* 双层圆点 */ .icon-dot{     display: inline-block;     width: 60px;     height: 60px;     padding: 10px;     border-radius: 50%;     border: 10px solid;     background-clip: content-box;     background-color: currentColor; }

五.margin深入研究

1.使用:nth-type-of(3n)去除子元素尾部margin

Css必知的底层知识和技巧有哪些
.mg-item:nth-of-type(3n){     margin-right: 0; }

注:如果容器可以滚动,在IE和firefox下会忽略padding-bottom的值,chrome则不会,此时可以通过margin-bottom实现滚动容器的底部留白

Css必知的底层知识和技巧有哪些

2.margin合并条件

        margin合并的三种场景

* 解决方案: 父级设置为块级格式化上下文元素             父元素设置border-top/bottom值             父元素设置padding-top/bottom值             父元素设置高度

空块级元素margin合并

3.margin合并的计算规则

“正正取大值”,”正负值相加”,”负负最负值”

4.深入理解margin:auto

  1. 如果一侧定值,一侧auto,则auto为剩余空间大小

  2. 如果两侧均是auto,则平分剩余空间

  3. 触发margin:auto计算的前提:width或height为定值时,元素是具有自动填充特性的

Css必知的底层知识和技巧有哪些
/* 1 */ margin-right: 20px; margin-left: auto; /* 2 */ margin-right:auto; margin-left: auto;

4.绝对定位元素利用margin:auto实现水平垂直居中(兼容到ie8+)

Css必知的底层知识和技巧有哪些
.father{     position: relative; } .child-2{     position: absolute;     left: 0; bottom: 0; right: 0; top: 0;     width: 40px;     height: 20px;     margin: auto; }

*** margin无效情形分析:

  1. display计算值为inline的非替换元素的垂直margin是无效的

  2. 对于内联替换元素,垂直margin有效,并且没有margin合并问题,所以永远不会发生margin合并

  3. 内联特性导致margin失效:一个容器里面有一个图片,图片设置margin-top,随着margin-top负值越来越大,达到某一具体负值时,图片将不再往上偏移

六.字母x与css中的基线

  1. 基线 字母x的下边缘

  2. x-height 指字母x的高度

  3. ex:ex指小写字母x的高度,是相对单位

  4. vertical-align:middle 指的是基线往上1/2 x-height高度

    Css必知的底层知识和技巧有哪些
内联元素设置对齐方式时,是基于最前面的内联元素的基线,然后根据自己的vertical-align来调整对齐的

七.BFC&ndash;块级格式化上下文

1.表现: 元素内部的布局变化不会影响外部的元素.所以不会出现margin合并,可用来清除浮动的影响.

2.触发BFC的条件:

3.若元素具备BFC特性,则无需clear:both去清除浮动

4.display:table-cell的特性: 宽度设置的再大,也不会超过表格容器的宽度

5.overflow裁切界限:border box: 一个设置了overflow:  hidden的元素同时设置了padding和border,则子元素超出容器宽高设置时,裁切的边界是border box内边缘而不是padding  box内边缘

6.在PC端,默认滚动条均来自,PC端滚动高度可以用document.documentElement.scrollTop获取,在移动端用document.body.scrollTop获取

7.PC端滚动条宽度约为17px

8.让页面滚动条不出现晃动的方法:

html{     /* ie8 */     overflow-y: scroll; } :root{     overflow-y: auto;     overflow-x: hidden; } :root body{     position: absolute; } body{     width: 100vw;     overflow: hidden; }

9.多行文本溢出显示省略号的css方法:

.ell-rows-2{     display: -webkit-box;     -webkit-box-orient: vertical;     -webkit-line-clamp: 2; }

八.relative难点解析

1.relative的定位位移是相对于自身的,如果left/top/right/bottom的值为百分比单位,则计算尺寸是基于父元素

2.如果left/right  或top/bottom这些对立属性同时出现时,只有一个方向的属性会生效,优先级与文档流的顺序有关,默认的文档流是自上而下,从左到右的,所以top优先级高于bottom,left优先级高于right

3.relative的最小化原则

4.层叠上下文

1.flex 2.opacity不为1 3.transform不为none 4.mix-blend-mode不为normal 5.filter不为none 6.isolation是isolate 7.will-change为上面2-6的任意一个 8.元素-webkit-overflow-scrolling设为touch

1. 可访问性隐藏

2. ie8下的多背景隐藏

到此,关于“Css必知的底层知识和技巧有哪些”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

推荐阅读:
  1. Oracle必知基础总结
  2. iOS入门必知——UINavigationController

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

css

上一篇:怎么在Ubuntu Linux 16.04 LTS中使用多个连接加速 apt-get/apt

下一篇:怎么在Shell脚本中跟踪调试命令的执行

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》