iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > node.js >CSS常用的知识点有哪些
  • 782
分享到

CSS常用的知识点有哪些

2024-04-02 19:04:59 782人浏览 泡泡鱼
摘要

这篇文章主要讲解了“CSS常用的知识点有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“CSS常用的知识点有哪些”吧!一、width(宽)& he

这篇文章主要讲解了“CSS常用的知识点有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“CSS常用的知识点有哪些”吧!

一、width(宽)& height(高)

浏览器中,明确了width和height就可以绘制出一块矩形区域,也决定(量化)了当前html标签渲染后在屏幕上占据的有效矩形面积。

1.1 width与height的值

CSS常用的知识点有哪些

height属性规则与width相同。另外max-height、min-height优先级大于height,同理max-width和min-width优先级大于width。

1.2 height:100%无效

我们有时会在CSS里写height: 100%,发现并无效果,如下:

  1. <div class="block"></div> 


* {   padding: 0;   margin: 0;   border: 0; } body {   background-color: green;    border: 5px solid greenyellow; } .block {   width: 100%;   height: 100%;   background-color: red; }

block类 div的高度并未按照我们预想那样撑满全屏高度

CSS常用的知识点有哪些

高度100%并未铺满屏幕

代码&效果:https://codepen.io/DYBOY/embed/RwoJKRP

block类的父级(包含块)是body,body在未设置值的时,height值为auto,body的实际计算高度为内容撑开的高度,即为0(可以将上述代码的border样式取消注释,可看到body的高度)

那么子元素block类的高度即等同于0

body {     background-color: Azure;     height: auto; } .block {     width: 100%;     height: 0 * 100%; // 0     background-color: red; }

所以此时block类所在的div盒子的高度无效,height为0,即在浏览器上无渲染高度 浏览器的渲染规则可理解记忆为:深度优先遍历计算

子元素的相对单位的计算值都是基于父/祖先元素对应的属性值,auto是基于内容区域撑开计算所得。

浏览器渲染HTML文档流,背景色默认为白色,如果文档中的html、body标签设置了背景色,这两个标签的背景色实际设置的是浏览器视口的背景色。

二、padding(内边距)& border(边框)& magin(外边距)

盒模型可以看作四个“同心矩形”组合而成,如下图

CSS常用的知识点有哪些

对于这三个属性的表现其实并无特别可说明,见上图可知意。

元素分为行级元素和块级元素,行级元素的margin和padding的上下值无效。

2.1  百分比单位计算

自己之前一直有个误区,认为padding、margin的百分比单位的计算基数是当前元素矩形区域宽高来算,但是根据包含块的规则,他们的计算基数应该是包含块的width值。

之前团队里大佬洪岩问:“如何实现一个高度是自适应宽度3倍的图片?”

实现方法1: 利用Chrome浏览器最新支持的aspect-ratio属性,其问题就是C端浏览器兼容性不好

.box {     aspect-ratio: 1/3; // width/height 宽高比 }

 CSS常用的知识点有哪些

aspect-ratio效果

实现方法2: 巧用包含块规则(padding和width属性百分比值的计算基数是包含块的宽度)+背景图实现

CSS常用的知识点有哪些

利用包含块规则实现

代码和演示:Https://codepen.io/DYBOY/pen/JjbZgeE

2.2  border-radius百分比和像素

border-radius属性用于描述边框圆角半径,根据资料如果是百分比单位,则根据所在**盒子模型的矩形宽和高(包含border和padding)**作为计算基数,border-radius的值描述的是边框角度所在椭圆的半长轴和半短长轴长度。

border-*-radius属性的两个长度或百分比值定义了四分之一椭圆的半径,该半径定义了外边界边角的形状(参见下图)。第一个值为水平半径,第二个为垂直半径。如果省略第二个值,则从第一个复制。如果任一长度为零,则角为正方形,而不是圆角。

CSS常用的知识点有哪些

水平半径的百分比是指边框的宽度,而垂直半径的百分比是指边框的高度。

来看下面这个示例:

<div class="box">1</div> <div class="box style1">2</div> <div class="box style2">3</div> <div class="box style3">4</div>
* {     padding: 0;     margin: 0; } body {     background-color: #fff; } .box {     position: relative;     width: 200px;     height: 200px;     margin: 10px auto;     background-color: #00abef;     border-radius: 100px;     display: flex;     justify-content: center;     align-items: center;     font-size: 32px;     color: #fff; } .style1 {     padding: 20px; } .style2 {     padding: 20px;     border-radius: 50%; } .style3 {     padding: 20px;     border-width: 10px;     box-sizing: border-box; }

CSS常用的知识点有哪些

效果

代码&演示:https://codepen.io/DYBOY/pen/BaQPaaj

发现第二个形状是一个椭圆,其原因是百分比的计算是把所在元素矩形区域的宽和高作为计算基数,而所在矩形的框高的计算值需要加上padding和border的宽度,所以变成了一个椭圆。那么,是不是把盒模型设置为IE盒模型就可以避免这个问题了?答案是的,如上代码的第四个圆形。

  • 参考详细资料:https://www.w3.org/TR/2010/WD-css3-background-20100612/#the-border-radius

利用边框的椭圆,可以制造平滑的不规则形状,例如模仿一个水滴:

CSS常用的知识点有哪些

运动的水珠

**知识点:**如果没有设置border-color,默认边框颜色为所在元素的文本颜色。

2.3 BFC与margin折叠

BFC是盒模型中在屏幕上渲染展示的矩形区域,决定了浮动、盒模型渲染交互的区域。

margin区域折叠是一个BFC(块级格式化上下文)的问题,两个div属于同一个BFC。父子元素margin-top塌陷,兄弟元素margin重合取较大值。

若想要避免,则需要让两个相邻设置了margin的元素都变成一个BFC。

创建BFC的常见CSS属性值?

  1. 鸿蒙官方战略合作共建——HarmonyOS技术社区

  2. 浮动元素,float:left/right/auto

  3. 定位,position:absolute/fixed

  4. 展示,display:inline-block/table相关/flow-root/flex/grid

  5. flex/grid 的直接子元素为BFC

  6. table 相关的比如 table、table-cell、table-caption等

  7. flow-root最好,无副作用

  8. 溢出,显示指明overflow:hidden/auto

  9. overflow的css计算值不为visiable,也就是指明溢出盒模型交互区域的处理方式

  10. html根元素是一个BFC

关于BFC更详细的解读可以参阅:

《可能是最好的BFC解析了...》- https://juejin.cn/post/6960866014384881671

2.3.1 实例&解决方案

2.3.1.1 父子高度塌

父级margin,子级的margin-top无效

CSS常用的知识点有哪些

高度塌陷

代码&演示:https://codepen.io/DYBOY/pen/poNxjOP

解决方案:

原因是父子组件的margin-top取最大值,上面例子中父子组件的包含块都是body,属于同一个BFC(html标签)内的子元素,因此需要将父/子元素变成BFC(根据如上的创建BFC的CSS值设置),那么子元素的margin就会依赖父元素的左上角作为基准点margin偏移。

2.3.1.2 兄弟元素margin取较大值

<style> .box {     margin: 20px auto;     background-color: red;     width: 200px;     height: 200px; } </style>  <div class="box"></div> <div class="box"></div> <div class="box"></div>

 CSS常用的知识点有哪些

上下相邻元素的外边距为20px重合了

解决方案:

想要每两个盒子的上下边距为20px*2,则就需要如下处理:

<style> .box-parent {     overflow: hidden;      } .box {     margin: 20px auto;     background-color: red;     width: 200px;     height: 200px; } </style>  <div class="box-parent">     <div class="box"></div> </div> <div class="box-parent">     <div class="box"></div> </div> <div class="box-parent">     <div class="box"></div> </div>

 推荐解决方案:

由于改变了DOM结构,所以不是最好的解决方法,更好的方法就是利用塌陷规则,增加margin-bottom/margin-top的值,直接计算得到两块元素之间的margin,并设置对应值。

三、Containing Block(包含块)

包含块内容可参阅文章《字节前端都知道的CSS包含块规则》

四、box-sizing(盒模型)

盒子模型包含四部分:外边距(margin area)、边框(border area)、内边距(padding area)、内容区(content  area),其分布组合如下图所示。

 CSS常用的知识点有哪些

盒子模型

盒模型有两种,IE盒模型(border-box)和标准盒模型(content-box),其常用语法如下

// 默认为标准盒模型 box-sizing:border-box | content-box

不同的盒模型影响HTML标签在浏览器上实际渲染的屏幕像素面积,该属性规定了border和padding属性值是否占用width和height规定的内容区。

例如宽度width属性的值计算规则如下:

  • content-box:width = content width

  • border-box:width = content width + padding width + margin width

一言以蔽之,content-box的宽高是规定内容区宽高,border-box的宽高规定了content+border+padding三者和的宽高

CSS常用的知识点有哪些

CSS盒模型

五、position(定位)

关于定位,必要明确的就是定位的基准点是哪儿?

CSS常用的知识点有哪些

六、font-size(字号)& line-height(行高)

line-height带有单位时,计算行高的结果为line-height高度,line-height规定的是行高最小的的高度

line-height是相对单位时,line-height具有继承性,其子元素如果没有设置line-height,那么子元素的行高为父元素计算所得的行高值。

line-height值为纯数字时,当前行高会根据当前文本的 font-size*line-height 计算所得。

七、CSS选择器

7.1 通用选择器

.a.b:(无空格)当a和b在同一标签类名中同时出现才选择 .a .b:(有空格)选择a的所有后代b .a>.b:(>)选择a的子代b .a, .b:(,)a与b样式相同 .a+.b:(+)选择a紧邻的兄弟b .a~.b:(~)有共同父元素,选择a后的所有b,ab不必紧邻

7.2 属性选择器:

  • [attr]:表示带有以attr命名的属性的元素。

  • [attr=value]:表示带有以attr命名的属性,且属性值为value的元素。

  • [attr~=value]:表示带有以attr命名的属性的元素,并且该属性是一个以空格作为分隔符的值列表,其中至少有一个值为value。

  • [attr|=value]:表示带有以attr命名的属性的元素,属性值为“value”或是以“value-”为前缀("-"为连字符,Unicode 编码为  U+002D)开头。典型的应用场景是用来匹配语言简写代码(如 zh-CN,zh-TW 可以用 zh 作为 value)。

  • [attr^=value]:表示带有以attr命名的属性,且属性值是以value开头的元素。

  • [attr$=value]:表示带有以attr命名的属性,且属性值是以value结尾的元素。

  • [attr*=value]:表示带有以attr命名的属性,且属性值至少包含一个 value 值的元素。

7.3 伪类选择器

CSS常用的知识点有哪些

:root :文档根元素

八、文本处理

font-stretch: nORMal; font-kerning: normal; text-rendering: optimizeLegibility;

文本是最基础最重要的功能之一,深入了解文本的渲染布局非常有必要。

关于文本处理相关的CSS,知识点较多且深,因此将在后续文章将详细解读,因为文字处理属于一个需要深入理解的领域,也是一个基础领域,在大部分的场景我们是不需要关心,但是如果涉及到精细化展示、兼容性的问题,就不得不涉及到文本渲染原理相关内容。

九、flex布局

.box {     display: flex;       flex-direction: row;      flex-wrap: nowrap;           justify-content: flex-start;       align-items: flex-start;  } .item {     order: 0;        flex-grow: 0;        flex-shrink: 1;      flex-basis: auto;           align-self: flex-start;  }

上述是笔者对flex使用经验的一些精简总结,另外推荐大家阅读《Flexbox布局中不为人知的细节 - Alibaba  F2E》,从原理层解读,研读完非常受用。

十、自定义CSS属性

example:

html {     --theme-color: red;     --theme-font-size: 16px; }  .example {     color: var(--theme-color);     font-size: var(--theme-font-size); }

因为是新的属性规则,在低版本设备上可能遇上不兼容情况,因此可以使用查询特性的@supports()

@supports(color: var(--theme-color)) {     // 支持上面的的处理方式则下面的css将生效     .class-box {         color: var(--theme-color);     } }  // 对于selector的支持不好 @supports not (color: var(--theme-color)) {     // 不支持上面的的处理方式则下面的css将生效     .class-box {         color: red;     } }

兼容性:https://caniuse.com/?search=%40supports

@support文档:https://developer.mozilla.org/zh-CN/docs/WEB/CSS/@supports

总结

上述讲到了十个大的CSS知识点,也是工作开发过程中经常会遇到的细节问题,把这些知识点/CSS规则熟记于心,有利于高效率编写前端样式!

感谢各位的阅读,以上就是“CSS常用的知识点有哪些”的内容了,经过本文的学习后,相信大家对CSS常用的知识点有哪些这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: CSS常用的知识点有哪些

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

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

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

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

下载Word文档
猜你喜欢
  • CSS常用的知识点有哪些
    这篇文章主要讲解了“CSS常用的知识点有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“CSS常用的知识点有哪些”吧!一、width(宽)& he...
    99+
    2024-04-02
  • CSS知识点有哪些
    这篇文章给大家分享的是有关CSS知识点有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 1、对WEB标准以及W3C的理解与认识 标签闭合、标签小写、不乱嵌套、提高搜索机器...
    99+
    2024-04-02
  • Css的知识点有哪些
    这篇文章主要为大家展示了“ Css的知识点有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“ Css的知识点有哪些”这篇文章吧。块元素、内联元素,是一个元素,...
    99+
    2024-04-02
  • vue常用知识点有哪些
    这篇文章主要介绍“vue常用知识点有哪些”,在日常操作中,相信很多人在vue常用知识点有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”vue常用知识点有哪些”的疑惑有所帮助!接下来,请跟着小编一起来学习吧...
    99+
    2023-07-02
  • 常用的JavaScript知识点有哪些
    这篇文章主要介绍“常用的JavaScript知识点有哪些”,在日常操作中,相信很多人在常用的JavaScript知识点有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”常用的JavaScript知识点有哪些...
    99+
    2023-07-05
  • CSS的必知常识有哪些
    本篇内容介绍了“CSS的必知常识有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!早期的大多数网站标记几...
    99+
    2024-04-02
  • CSS Hack的知识点有哪些
    这篇文章主要讲解了“CSS Hack的知识点有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“CSS Hack的知识点有哪些”吧! 一、CSS ...
    99+
    2024-04-02
  • CSS的基础知识点有哪些
    这篇文章主要介绍“CSS的基础知识点有哪些”,在日常操作中,相信很多人在CSS的基础知识点有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”CSS的基础知识点有哪些”的疑惑有所帮助!接下来,请跟着小编一起来...
    99+
    2023-06-27
  • CSS标签的知识点有哪些
    这篇文章主要讲解了“CSS标签的知识点有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“CSS标签的知识点有哪些”吧!1 如果想在网页上显示文章,这时就...
    99+
    2024-04-02
  • CSS基础知识点有哪些
    这篇文章主要为大家展示了“CSS基础知识点有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“CSS基础知识点有哪些”这篇文章吧。CSS3 选择器选择器可以被分...
    99+
    2024-04-02
  • CSS重要知识点有哪些
    这篇文章主要讲解了“CSS重要知识点有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“CSS重要知识点有哪些”吧!SelectorsRoot:root&n...
    99+
    2024-04-02
  • CSS继承的知识点有哪些
    本篇内容介绍了“CSS继承的知识点有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!   属性的是否默...
    99+
    2024-04-02
  • CSS的背景知识点有哪些
    本篇内容主要讲解“CSS的背景知识点有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“CSS的背景知识点有哪些”吧!介绍CSS background属性是以下属性的简写。背景剪辑,背景颜色,背...
    99+
    2023-06-27
  • CSS相关知识点有哪些
    本篇内容介绍了“CSS相关知识点有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!  1、CSS选择器 ...
    99+
    2024-04-02
  • Css布局知识点有哪些
    这篇文章主要介绍了Css布局知识点有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。常见的块级元素<div> <p>...
    99+
    2024-04-02
  • css前端知识点有哪些
    本篇文章给大家分享的是有关css前端知识点有哪些,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1、css的概念:(CascadingStyleSheet级联样式表)优点:1.内...
    99+
    2023-06-08
  • 常见的JavaScript知识点有哪些
    这篇文章主要讲解了“常见的JavaScript知识点有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“常见的JavaScript知识点有哪些”吧!1.声明...
    99+
    2024-04-02
  • HTML常用的属性知识点有哪些
    这篇文章将为大家详细讲解有关HTML常用的属性知识点有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 定义: HTML属性:HTML元素提供的附加信息 简单的理...
    99+
    2024-04-02
  • Python开发常用的知识点有哪些
    这篇文章主要介绍“Python开发常用的知识点有哪些”,在日常操作中,相信很多人在Python开发常用的知识点有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python开发常用的知识点有哪些”的疑惑有所...
    99+
    2023-06-27
  • DIV+CSS布局的知识点有哪些
    这篇文章主要介绍了DIV+CSS布局的知识点有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇DIV+CSS布局的知识点有哪些文章都会有所收获,下面我们一起来看看吧。 di...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作