文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

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

2024-04-02 19:55

关注

这篇文章主要介绍“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必知的底层知识和技巧有哪些
 margin-right: 20px; margin-left: auto;  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{          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必知的底层知识和技巧有哪些”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-前端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯