iis服务器助手广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >Css必知的底层知识和技巧有哪些
  • 610
分享到

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

2024-04-02 19:04:59 610人浏览 独家记忆
摘要

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

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

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

一.css尺寸

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

  • 在css中,图片和文字的权重远大于布局,因此当width:0时表现出来的宽度就是“首选最小宽度”。中文的最小宽度为每个汉字的宽度,西方文字取决于连续的英文字符单元。

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

 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%时的奇怪现象原理探究

  • 父元素的宽度 = 图片宽度 + 文字内容宽度

  • 浏览器渲染原理:先下载文档内容,加载头部样式资源,然后按从上到下、自外而内的顺序渲染dom内容。本例的现象产生的原因就是:当渲染到父元素时,子元素的width:100%并没有渲染,宽度就是图片加文字内容的宽度;等渲染到文字这个子元素的时候,父元素的宽度已经固定,此时的width:100%就是以固定好的父元素的宽度,宽度不够只能溢出。

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

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

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

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

  • 知识点:绝对定位的宽高百分比是基于padding-box的,而非绝对定位的宽高百分比是基于content-box

方法如下:

  • * 1.设置显示的高度值

  • *2.使用绝对定位

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

  • 1.min-height/min-width的初始尺寸为auto, max-height/max-width的初始尺寸为none

  • 2.min-height/min-width的优先级高于max-width/max-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; }
  • content内容生成技术

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的实际应用(具体实现可自行思考)

  • 1.增加链接或按钮的点击区域的大小2.利用内联元素的padding实现高度可控的分割线3.用内联元素实现瞄点定位距离

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必知的底层知识和技巧有哪些
  • 其本质区别在于:chrome是子元素超过父元素content box尺寸触发滚动条显示,而IE和Firefox浏览器是超过padding  box尺寸时触发滚动条显示

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的条件:

  • 根元素

  • float的值不为none

  • overflow的值为auto,scroll,hidden

  • display的值为table-cell,inline-block

  • position的值不为static或者relative

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的最小化原则

  • 尽量不使用relative,可以采用无依赖绝对定位解决某些问题

  • 如果一定要使用relative,则relative务必最小化(最小包含区域) &ndash;为了避免层级覆盖等问题

4.层叠上下文

  • 定位元素的默认z-index:auto;此时和普通元素一样,一旦z-index设置为任意数值,就创建了一个层叠上下文,顺序为:

  • 层叠上下文 < 负z-index < block < float < inline < z-index:auto <  正z-index

  • css3新属性的层叠上下文:

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
  • z-index负值在block下面,实际应用:

1. 可访问性隐藏

2. ie8下的多背景隐藏

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

--结束END--

本文标题: Css必知的底层知识和技巧有哪些

本文链接: https://www.lsjlt.com/news/84232.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Css必知的底层知识和技巧有哪些
    这篇文章主要介绍“Css必知的底层知识和技巧有哪些”,在日常操作中,相信很多人在Css必知的底层知识和技巧有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Css必知的底层...
    99+
    2024-04-02
  • JavaScript的底层知识点有哪些
    这篇文章将为大家详细讲解有关JavaScript的底层知识点有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。JavaScript是一门直译式的解释型脚本语言,它具有动...
    99+
    2024-04-02
  • CSS的必知常识有哪些
    本篇内容介绍了“CSS的必知常识有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!早期的大多数网站标记几...
    99+
    2024-04-02
  • VS Code有哪些奇技淫巧(必知)
    不同的开发工具,都能俘获各自的一批忠实的用户和支持者。 VS Code、Eclipse、IDEA、atom....到底哪一款开发工具更好?一直存在这样一个争论。 VS Code这几年...
    99+
    2024-04-02
  • Golang的基础知识和高级技巧有哪些
    这篇“Golang的基础知识和高级技巧有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Golang的基础知识和高级技巧有...
    99+
    2023-07-05
  • Css技术的基本知识有哪些
    这篇文章给大家分享的是有关Css技术的基本知识有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、行内元素、块级元素以及CSS的三大特性1、行内元素、块级元素行内元素会在一条...
    99+
    2024-04-02
  • css层叠样式表的知识点有哪些
    这篇文章主要讲解了“css层叠样式表的知识点有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“css层叠样式表的知识点有哪些”吧! css 层叠样式表 ...
    99+
    2024-04-02
  • Css选择器必备知识点有哪些
    这篇文章主要为大家展示了“Css选择器必备知识点有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Css选择器必备知识点有哪些”这篇文章吧。CSS作用:层叠样...
    99+
    2024-04-02
  • Web前端必知的优化技巧有哪些
    本篇内容主要讲解“Web前端必知的优化技巧有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Web前端必知的优化技巧有哪些”吧!1. 移除移动幽灵阴影点击效果...
    99+
    2024-04-02
  • CSS小知识有哪些
    本篇文章为大家展示了CSS小知识有哪些,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1.CSS的color属性并非只能用于文本显示对于CSS的color属性,相信所...
    99+
    2024-04-02
  • CSS hack的知识有哪些
    这篇文章主要介绍“CSS hack的知识有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“CSS hack的知识有哪些”文章能帮助大家解决问题。   ...
    99+
    2024-04-02
  • Vue开发必须知道的技巧有哪些
    这篇文章主要介绍“Vue开发必须知道的技巧有哪些”,在日常操作中,相信很多人在Vue开发必须知道的技巧有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Vue开发必须知道的...
    99+
    2024-04-02
  • CSS知识点有哪些
    这篇文章给大家分享的是有关CSS知识点有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 1、对WEB标准以及W3C的理解与认识 标签闭合、标签小写、不乱嵌套、提高搜索机器...
    99+
    2024-04-02
  • Linux shell中必须知道的知识有哪些
    本篇文章为大家展示了Linux shell中必须知道的知识有哪些,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。我个人很喜欢使用 Linux 系统,虽然说 Windows 的图形化界面做的确实比 Li...
    99+
    2023-06-16
  • Css的知识点有哪些
    这篇文章主要为大家展示了“ Css的知识点有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“ Css的知识点有哪些”这篇文章吧。块元素、内联元素,是一个元素,...
    99+
    2024-04-02
  • PHP中必须知道的知识点有哪些
    这篇文章主要介绍“PHP中必须知道的知识点有哪些”,在日常操作中,相信很多人在PHP中必须知道的知识点有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”PHP中必须知道的知识点有哪些”的疑惑有所帮助!接下来...
    99+
    2023-06-20
  • Div和Css的基础知识有哪些
    本篇内容介绍了“Div和Css的基础知识有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! Html的...
    99+
    2024-04-02
  • html和css基础知识有哪些
    本篇内容主要讲解“html和css基础知识有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“html和css基础知识有哪些”吧!Html是超文本标记语言(英语全称:HyperText Mark...
    99+
    2023-06-05
  • 域名必备知识有哪些
    这篇文章主要介绍了域名必备知识有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1.域名后缀有什么含义?如何选择使用这些后缀域名?在国内主要有com、net、cn、org等...
    99+
    2023-06-10
  • 前端CSS必须要学的知识点有哪些
    本文小编为大家详细介绍“前端CSS必须要学的知识点有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“前端CSS必须要学的知识点有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作