理解CSS|青训营笔记

简介: 理解CSS|青训营笔记

一、什么是CSS

作为前端三剑客之一的CSS是每个前端开发工程师必须掌握的技术,那么什么是CSS呢?

CSS全称 Cascading Style Sheets,是用来定义页面元素的技术。我们把HTML比作雏鸟身体的话,那么CSS就是我们的羽毛,是用来装饰我们的。

二、CSS如何使用

在我们的页面中如何使用CSS呢?

1.外链

<!-- 外链 -->
    <link rel="stylesheet" href="./style1.css">

在我们的title标签后面利用link标签引入即可

2.嵌入

<!-- 嵌入 -->
    <style>
            div {
                color: hsl(250,60%,60%);
            } 
    </style>

利用style的标签直接在HTML结构里面书写

3.内联

<body>               
                    <!-- 内联 -->
                    <div style="color: skyblue">青训我来啦</div>
</body>

在html元素标签内写入

三、如何学习CSS

对于CSS学习,大致分为以下几点

1.CSS选择器

2.元素属性

3.布局方式

(一)CSS选择器

1.选择器的种类

2.CSS与选择器挂钩的三大属性

(1)选择器种类

1.通配符选择器

<style>
            * {
                list-style: none;
                font-size: 50px;
            }
    </style>

选中页面所有元素

2.id选择器

<style>
        #root {
            font-size: 25px;
            background-color: #ff1;
        }
    </style>

选中id名为root的标签

3.类选择器

<style>
        .container {
            width: 100px;
            height: 100px;
        }
    </style>

选择class属性为container的标签

4.伪类选择器

<style>
        .container:first-child {
            width: 50px;
            height: 50px;
        }
        .container:last-child {
            font-size: large;
        }
        .container:nth(2)-child {
            background-color: #ff3;
        }
    </style>

通过代码展示易知选择类名为container下的第几个子元素

类似的还有first-of-type伪类,大家下去参考文档便可

5.属性选择器

<style>
        [type='text']{
            background-color: #ff8;
            border: 1px solid #333
        }
    </style>

选择type属性为text的标签

6.标签选择器

<style>
            div {
                width: 1314px;
                height: 520px;
            }
    </style>

表示选择所有div标签

7.选择器的组合

image.png

使用组合选择器可以方便定位到我们要使用的标签上。

更多的选择器属性请大家参考(MDN Web Docs (mozilla.org))

(2)CSS与选择器挂钩的三大属性
1.CSS的层叠性

指多种CSS样式的叠加。

是浏览器处理冲突的一个能力,如果一个属性通过两个相同选择器设置到同一个元素上,那么这个时候一个属性就会将另一个属性层叠掉。

原则:

1、样式冲突,遵循的原则是就近原则,即越靠近body标签,越会选择此属性

2、样式不冲突,不会层叠

<style>
            div {
                width: 1314px;
                height: 520px;
                font-size: 12px;
            } 
            div {
                font-size: 28px;
                background-color: #dd5;
            }
    </style>

这里font-size会执行19px的覆盖了上面的,但是不冲突的属性不会层叠

2.CSS继承性

写CSS样式表时,子标签会继承父标签的某些样式,如文本颜色和字号。想要设置一个可继承的属性,只需要将它应用于父元素即可。

注意:恰当地使用继承可以简化代码,降低CSS样式的复杂性。

子元素可以继承父元素的样式(text-,font-,line-这些元素开头的都可以继承,以及color属性)

对于无法继承的属性我们可以通过为该属性添加Inherit,让它能够被继承。

<style>
            html {
                box-sizing: inherit;
            } 
    </style>
3.CSS的优先级

选择器类型及权重:

选择器 权重

标签选择器 0001

class类选择器 0010

属性选择器 0010

伪类选择器 0010

伪元素选择器 0010

id选择器 00100

行内样式 1000

多个选择器 选择器权重之和

当元素用组合选择器时无可避免的会遇到优先级问题

前面的就近原则就是一种, 通过对权重的计算,可以让我们避免遇到权重问题导致的样式被层叠或者无法显示

(二)元素属性

常见的元素属性

1.颜色属性

2.字体属性

(1)颜色属性

1.表示颜色的方式

RGB 十六进制  HSL  颜色名称

对于十六进制和RGB,可以参考CodePen 加深对颜色属性的理解,找到适合的颜色值。

HSL的表示方法

image.png

HSL的三个数值也是据此定义的

<style>
            div {
                color: hsl(250,60%,60%);
            } 
    </style>

image.png

2.alpha透明度

image.png

对于透明度的理解,请大家参考CodePen,自行尝试

(2)字体属性

1.font-family

对于字体选择有原则:

(1).字体列表最后写上通用列表

(2).英文字体放在中文字体前面

2.sapce-white

normal 默认。空白会被浏览器忽略。
pre 空白会被浏览器保留。其行为方式类似 HTML 中的
 标签。
nowrap 文本不会换行,文本会在在同一行上继续,直到遇到
标签为止。
pre-wrap 保留空白符序列,但是正常地进行换行。
pre-line 合并空白符序列,但是保留换行符。

(三).布局方式

1.布局技术

2.IFC和BFC

(1)布局技术
1.盒子模型

image.png

重要分析盒子模型

image.png

2.Flexbox

通过flex布局让我们对整个页面的划分更加清晰

1.通过flex-direction对主轴方向进行调整

image.png

2.通过justfiy-content对子元素进行特定的排版

image.png

3.通过align-items调整侧轴方向

image.png

4.通过align-self调整某个子元素自己的排版

image.png

5.给子元素指定order值 调整前后顺序

image.png

6.flex其他属性

image.png

(二)IFC和BFC

什么是IFC和BFC呢?

image.png

image.png

对于BFC的排版规则如下有:

1.盒子从上到下摆放

2.垂直margin合并

3.BFC内盒子不会和外面的合并

4.BFC不会和浮动元素重叠

总结

有些CSS新特性进入青训营学习时第一次接触到,比如(inherit显示继承),希望大家保持心态,一起加油!

相关文章
|
4月前
|
前端开发 JavaScript 开发者
理解CSS | 青训营笔记(3)
理解CSS | 青训营笔记(3)
41 0
|
4月前
|
机器学习/深度学习 编解码 前端开发
理解CSS | 青训营笔记(2)
理解CSS | 青训营笔记
41 0
|
4月前
|
前端开发 容器
理解CSS | 青训营笔记(1)
理解CSS | 青训营笔记
55 0
|
7月前
|
前端开发 容器
CSS3属性详解(一)文本 盒模型中的 box-ssize 属性 处理兼容性问题:私有前缀 边框 背景属性 渐变 前端开发入门笔记(七)
CSS3属性详解(一)文本 盒模型中的 box-ssize 属性 处理兼容性问题:私有前缀 边框 背景属性 渐变 前端开发入门笔记(七)
93 2
|
7月前
|
移动开发 前端开发 JavaScript
CSS选择器 前端开发入门笔记(十)
CSS选择器 前端开发入门笔记(十)
71 1
|
7月前
|
编解码 前端开发 iOS开发
前端开发入门笔记(八)CSS3属性详解:动画详解+Flex布局图文详解+Web字体
前端开发入门笔记(八)CSS3属性详解:动画详解+Flex布局图文详解+Web字体
114 1
|
7月前
|
前端开发 JavaScript 容器
CSS属性:定位属性+案例讲解:博雅互动 前端开发入门笔记(五)
CSS属性:定位属性+案例讲解:博雅互动 前端开发入门笔记(五)
58 1
|
7月前
|
XML 编解码 前端开发
css设计文本样式 前端开发入门笔记(十二)
css设计文本样式 前端开发入门笔记(十二)
44 0
|
7月前
|
Web App开发 XML 前端开发
CSS中的非布局样式+CSS布局 前端开发入门笔记(十一)
CSS中的非布局样式+CSS布局 前端开发入门笔记(十一)
83 0
|
前端开发 Web App开发
css使用笔记
最近写一个前台页面,因为不用考虑太多兼容性问题,尝试了很多css3的东西,记录下。 1、渐变和边框阴影 最初的视觉稿,上面有很多地方颜色使用了渐变,为了不使用图片,用了很挫的方式来实现:从图片渐变开始、中间、结束部分,用gimp的吸管获取颜色,然后转换成css的渐变。不过因为渐变每个浏览器支持方
1626 0