css笔记

作者: 啊耶嗨 | 来源:发表于2019-11-03 14:39 被阅读0次

css引入

行间样式——直接写到style里面

<div style="

        background: red ;

        weight:100px;

        height:100px;

        "></div>

页面级css——写在<heaad></head>里面

外部css文件——单独写一个css文件

CSS规则=选择器+声明块

text-decoration:none;→该元素是用来除去a元素的下划线的

img元素细化:object-fit(适应方式)元素通常取三个值→contain(当配合border元素使用时,既要保存原来比例和内容又要尽可能大的填充在盒元素中);fill(当配合border元素使用时,显示图片全部内容并填充到盒模型中,但不能保持比例。默认值);cover(保持比例不变并整个填充盒模型,但可能会丢失部分图片内容);当图片未设置高度只设置宽度时,增加宽度,高度会按照比例增加

选择器

选择器;选中元素

ID选择器:选中的是对应id值的元素

<style>

#ww {   

    color:red;     

}

</style>

<body >

<h2 id="ww">Lorem ipsum dolor sit amet consectetur adipisicing elit.</h2>

</body>

元素选择器。了解→ :first-letter选中第一个数字

类选择器

<style>

            div.abcd li{

            color: red;

        }

</style>

<div class="abcd">

Lorem ipsum dolor sit, consectetur adipisicing elit.

      <ul>

        <li>Lorem, ipsum dolor.</li>

        <li>At, temporibus dolore?</li>

        <li>Quam, odit necessitatibus.</li>

        <li>Nulla, fuga officia.</li>

        <li>Quidem, cum delectus.</li>

        <li>Sapiente, tenetur dolores.</li>

      </ul>

    </div>

class后面引号中可以同时写多个类名,类名之间以空格分隔

通配符选择器——*(选中所有元素)

属性选择器——根据属性名和属性值选择元素

[href]{  //表示只选中含有href属性的元素(若方

括号中herf写入具体值,如[herf="n"],则表示只选

中含有herf属性且属性值为n的元素

    color:red;

}

优先级为→!important>行间样式>ID>class=属性=伪类>元素(标签)=伪元素>通配符

伪类选择器——选中某些元素的某种状态(以下选择器用的时候就按照下面的顺序排列)。了解→ **:nth-child(n)**选中第n个元素

link:超链接未访问过时的状态

visited:超链接访问过后的状态

hover:鼠标悬停状态

如:

a:hover{

    color: blanchedalmond

}

active:激活状态,鼠标按下状态

伪元素(属于行级元素)选择器

before

所选HTML中的元素::before{ content: "添加第一个子元素内容";//content——为所选元素添加一个子元素并令其为首个子元素 color:……; …… }

after

分组选择器

ul,

p,

span{

    background-color:greenyellow;

}

同时选中多个元素

选择器的组合

并且

后代元素——空格

子元素——>

相邻兄弟元素——+

后面出现的所有兄弟元素——~

选择器的并列

多个选择器用逗号分隔

声明块

声明块出现在大括号中,里面有很多声明(属性)

每一个声明(属性)表达了某一方面的样式

CSS代码书写位置

内部样式表——书写在style元素中

内联样式表,元素样式表——直接书写在元素的style中

外部样式表——将样式书写到独立的CSS文件中

常见样式声明

color——元素内部的文字颜色。

预设值:定义好的单词。如"red,green等”

三原色,色值:光学三原色(红,绿,蓝),每个颜色可以使用0-255之间的数据来表达

rgb表示法:

color:rgb(0,255,0);表示绿色

hex(十六进制)表示法:

color:#hex红绿蓝;(#f40→淘宝红);transparent(透明色)

background-color——元素背景颜色

font-size——元素内部文字尺寸的大小(设置的是字体的高)

px:像素,绝对单位

em:相对单位,相对于父元素的字体大小,如果没有父元素(html),则使用基准字号。

font-weight——文字粗细程度,可以取值数字,可以取值预设值

normal:不加粗(400)

bold:加粗(700)

font-family——文字类型(必须用户计算机中存在的字体才会有效,通常使用多个字体以匹配不同环境)

font-family:字体1,字体2,字体3,……,sans-serif;

sans-serif:非衬线字体(一般电脑中都存在)

font-style:字体样式,通常用它设置斜体

font-style:italic;倾斜字体

font-style:normal;正常字体

text-decoration——文本修饰,给文本加线

text-decoration:none;没有线

text-decoration:underline;下划线

  text-decoration:overline;上划线

text-decoration:line-through;中划线

  text-decoration:none;没有线(可以用

  于去掉<del>中的中划线)

  cursor:;鼠标光标移到该元素上时的鼠标光标形态

line-height——每行文本高度,该值越大,每行文本的距离越大;设置行高为容器(height)的高度,可以让单行文本垂直居中;行高可以设置为纯数字,表示相对于当前数字的大小

width——元素的宽

height——元素的高

letter-space——文字间隙

text-indent——首行文本缩进

text-indent: 2em;缩进两个字符

text-indent: 2px; 缩进两个像素

13.text-align——元素内部文字的水平排列方式

text-align: center;居中

text-align: left;靠左排列

text-align: right;靠右排列

ul:→liststyle:none;表示去掉圆点,liststyle可以定义多种li列表前的标记

层叠

声明冲突:同一个样式,多次应用到同一个元素

层叠(权重计算):解决声明冲突的过程(浏览器自动处理)

1. 比较重要性

重要性从高到低:

1.作者样式表中的!important样式

2.作者样式表中的普通样式

3.浏览器默认样式中的样式

2. 比较特殊性

总体规则:选择器选中的范围越窄越特殊

具体规则:通过选择器计算出一个四位数(x x x x(逢256进1,即256进制)),数大的特殊

千位:如果是内联样式记1,否则记0

百位:等于选择器中所有ID选择器的数量

十位:等于选择器中所有类选择器、属性选择器、伪类选择器的数量

个位:等于选择器中所有元素选择器、伪元素选择器的数量

3. 比较源次序

代码书写靠后的胜出

应用

重置样式表——书写一些作者样式,覆盖浏览器的默认样式(常见的重置样式表:normalize.css、reset.css、meyer.css

爱恨法则(link>visited>hover>aactive)

继承

子元素会继承某些父元素的css属性(通常跟文字内容相关的属性都能被继承)

属性值的计算过程

一个元素一个元素依次渲染,顺序按照页面文档的树形目录结构进行

html

head

meta

title

body

h3

p

strong

a

img

渲染每个元素的前提条件:该元素的所有css属性必须有质(一个人元素从所有属性都没有值到所有属性都有值,这个计算过程叫做属性值计算过程)

无属性值→确定声明值→层叠冲突→使用继承→使用默认值→每个属性都有值

确定声明值:参考样式表(作者样式表、浏览器默认样式表)中没有冲突的声明,作为css属性值

层叠冲突:对样式表有冲突的声明使用重叠规则,确定css属性值

使用继承:对仍然没有值的属性,若可以继承,则继承父元素的值

使用默认值:对仍然没有值的属性使用默认值

特殊的两个css取值:

inherit:手动(强制)继承,将父类元素的值取出应用到该元素

initial:初始值,将该属性设置为默认值

盒模型(display:none;→不生成盒子)

box:盒子,每个元素在页面中都会生成一个矩形区域(盒子)

盒子类型:

行盒:display属性等于inline的元素(display默认值为inline)。

块盒:display属性等于block的元素。

行盒在页面中不换行,块盒独占一行

常见的浏览器默认样式表设置为块盒的元素有:容器元素、h1~h6、p、border-radius(弧度):50%;→此时表示圆形边框。

常见的浏览器默认样式表设置为行盒的元素有:span、a、video、audio、img

盒子的组成部分

border所设置的是边框   

border:10px solid black;//可以分部写,如下所示

border-width:10px

border-style:solid(实体);//还可

取值为dotted(点状虚线)、dashed(条状虚线)

border-color:black;

无论是行盒还是块盒都是由以下几个部分组成,从内到外分别是:

内容(content):width、height,设置的是盒子内容的宽高。内容部分通常叫做整个盒子的内容盒(content—box)

填充/内边距(padding):盒子边框到盒子内容的距离。padding-left、padding-right、padding-top、padding-bottom。(padding简写属性→padding:上 右 下 左;)。填充区+内容区=填充盒(padding-box)

边框(border):border-style边框样式(默认值为none)、border-width边框宽度(默认值为0,后面跟四个数时分别表示“上”“右”“下”“左”;跟三个数时分别表示“上”“左右”“下”)、border-color边框颜色(默认为字体颜色)。边框+填充区+内容区=边框盒(border-box)

外边距(margin):边框到其他盒子的距离。margin-left、margin-right、margin-top、margin-bottom。(同padding属性一样科速写属性)

盒模型的应用

当line-hight值等于height时文字垂直居中

1.行级元素:内容决定元素所占位置

            不可以通过css改变宽高

    span  strong  em a del

2.块级元素:独占一行

            可以通过css改变宽高

    div  p  ul li ol form address

3.行级块元素:内容决定大小

              可以改宽高

            img 

改变宽高范围

默认情况下,width和height设置的是内容盒宽高

衡量设计稿尺寸的时候,往往使用的是边框盒,但设置width和height,则设置的是内容盒

解决方法1:精确计算(较为麻烦)

解决方法2:css3:box-sizing

改变背景覆盖范围

默认情况下背景覆盖边框盒(可以通过background-clip进行修改)

溢出处理

overflow,控制内容溢出边框盒后的处理方式(hidden)为溢出隐藏

断词规则

word-break,会影响文字在什么位置被截断换行

normal:普通。CJK(中日韩)字符(在文字位置截断),非CJK字符(在单词位置截断)

break-all:截断所有。所有字符都在文字处截断

keep-all:保持所有,所有文字都在单词之间截断(CJK文字在空格处截断,没有空格默认整句文字为一个单词)

空白处理

white-space:nowrap(空白字符的处理规则是不换行)字符超出盒子横向尺寸后不换行(默认的是换行处理)

overflow(溢出处理):hidden;→隐藏溢出部分

text-overflow(文本溢出处理):ellipsis;→显示不完的部分显示出三个圆点的省略号

行盒的盒模型

常见的行盒:包含具体内容的元素(span,strong,em,i,img,video,audio

显著特点

盒子沿着内容延伸

行盒不能设置宽高(调整行盒的宽高应该使用字体大小、行高、字体类型,间接调整

内边距(填充区):水平方向有效,垂直方向只会影响背景,不会实际占用空间(但是会覆盖上下内容)

边框::水平方向有效,垂直方向只会影响背景,不会实际占用空间(但是会覆盖上下内容)

外边距::水平方向有效,垂直方向只会影响背景,不会实际占用空间。

行块盒

(display:inline-block;) 的盒子

不独占一行

盒模型中所有尺寸都有效

空白折叠

空白折叠发生在行盒(行块盒)内部或行盒(行块盒)之间

可替换元素和非可替换元素

大部分元素,页面上显示的结果取决于元素内容,称为非可替换元素

少部分元素,页面上显示的结果取决于元素属性,称为可替换元素

可替换元素:img、video、audio(绝大部分可替换元素均为行盒,但可替换元素又类似于行块盒,盒模型中所有尺寸都有效)

常规流

盒模型:规定单个盒子的规则

视觉格式化模型:页面中的多个盒子排列规则

视觉格式化模型大体上将页面中盒子的排列分为三种

常规流

浮动

定位

常规流

常规流又可以称作文档流、普通文档流、常规文档流

所有元素默认情况下都属于常规流布局

总体规则:块盒独占一行,行盒水平依次排列

包含块(containing block):每个盒子都有它的包含块,包含块决定了盒子的排列区域

绝大部分情况下:盒子的包含块为其父元素的内容盒

块盒

每个块盒的总宽度必须刚好等于包含块的宽度,宽度的默认值为auto(将剩余空间吸收掉),margin也可以取值auto(默认值为0)width吸收能力强于margin

若宽度、边框、内边距、外边距计算后仍有剩余空间,该剩余空间被margin-right全部吸收掉

在常规流中,块盒在其包含块中居中,可以定宽,然后左右margin设置为auto

每个块盒垂直方向上的auto值

height:auto,适应内容的高度

margin:auto,表示0

百分比取值

padding、宽、margin可以取值为百分比

以上所有百分比均是相对于包含块的宽度

高度的百分比:

包含块的高度取决于子元素的高度,设置百分比无效

包含块的高度不取决于子元素的高度,百分比是相对于父元素高度

上下外边距的合并

两个常规流块盒,上下外边距相邻,会进行合并(两个外边距取最大值)

浮动

应用场景

文字环绕

横向排列

浮动的基本特点

修改float属性为:

left:左浮动,元素靠上靠左

right:右浮动,元素靠上靠右

默认值为none(即不浮动,为常规流)

当一个元素浮动后,元素必定为块盒(更改display属性为block)

浮动元素的包含块,和常规流一样,为父元素的内容盒

盒子尺寸

宽度为auto时,适应内容宽度

高度为auto时,与常规流一致,适应内容高度

margin为auto时,值为0

边框、内边距、百分比(除了高以外,百分比均是相对于包含块的宽度)设置与常规流一样

盒子排列

左浮动的盒子,靠上靠左排列

右浮动的盒子,靠上靠右排列

浮动盒子在包含块中排列时,会避开常规流块盒

常规流块盒在排列时,无视浮动盒子

行盒在排列时会避开浮动盒子

如果文字没有在行盒中(直接摆放在块盒里),浏览器会自动生成一个行盒包裹文字,该行盒叫做匿名行盒

外边距合并不会发生

高度坍塌

高度坍塌的根源:常规流盒子的自动高度,在计算时,不会考虑浮动盒子

清除浮动,涉及css属性:clear

默认值:none

left:清除左浮动,该元素必须出现在前面所有左浮动盒子的下方

right:清除右浮动,该元素必须出现在前面所有右浮动盒子的下方

both:清除左右浮动,该元素必须出现在前面所有浮动盒子的下方

元素嵌套时,垂直方向的margin是一起的,会取它们

中最大的值;水平方向子元素的margin是相对于父元

素的margin(margin塌陷)

###### 解决方法

1. position:absolute;

2. displsy:inline-block;

3. float:left/right;

4. overflow:hidden;

-------------------

两个元素垂直方向上(上边元素的margin-bottom,下

边元素的margin-top)会重合,即实际距离取二者最大值(margin合并)

###### 解决方法

将两个元素其中一个写在一个新的元素(该元素

的css设为 overflow: hidden;)中,或者将两个元

素都写在两个不同的新的元素中(元素要求同上)

--------------------

###### 浮动元素会产生浮动流

1.所有产生了浮动流的元素,块级元素会直接忽视他们

2.产生了bfc的元素和文本类属性的元素以及文本类属性(inline)都能

看到浮动元素

----------------------

###### 用一个带边框的父元素包裹多个浮动流(*一

般情况下块级元素会忽视浮动流,直接设置块级元素

的宽高有不方便后期添加浮动流*)

只需要在该父元素内部的最下面加一个<p></p>元素再为p元素

设置css→clear:both;(清除周边的浮动流)即可。

也可以使用伪元素选择器

::after{

  content:"content";

  clear:both;

  display:block;

}

注*clear只有加在块级元素中才有效

定位

涉及的css属性为position属性

position属性(凡是设置了position:abolute; float:left/right;系统会在内部把元素转换为inline-block;)

position属性默认值为static,静态定位(不定位)

relative:相对定位

absolute:绝对定位

fixed:固定定位

一个元素,只要position取值不为static,就认为该元素是一个定位元素,定位元素会脱离文档流(相对定位除外)

一个脱离了文档流的元素:

文档流中的元素摆放时,会忽略脱离了文档流的元素

文档流中的元素计算自动高度时,会忽略脱离了文档流的元素

定位

position:absolute;//表示可以被定位(脱离原来位置进行定位)

相对于最近的有定位的父级进行定位,如果没有,相对于文档进行定位

left(左边线距离屏幕左边距离)/right(左边线距离屏幕左边距离):;

top/bottom:;

-------------------------

position:relative;//保留原来位置进行定位

left/right:;

top/bottom:;

相对于自己原来的位置进行定位

--------------------

position:fixed//固定定位

left/right:;

top/bottom:;

---------------------

当left/right等取值不为像素而是百分值时,是相

对于窗口的(可做元素居中)

---------------------------

<body></body>自带8像素的margin

相对定位

不会导致元素脱离文档流,只是让元素在原来位置上进行偏移

可以通过四个css属性设置其位置

left

right

top

bottom

以上四个属性出现对立属性(矛盾)时,以left和top为准

相对定位下,盒子的偏移不会对其他盒子造成影响

绝对定位

宽高为auto(默认值),适应内容

包含块变化:找祖先元素中找第一个定位元素,该元素填充盒为其包含块。若找不到,则它的包含快为整个网页(初始化包含快)

固定定位

其他情况和绝对定位完全相同

包含块不同:固定为视口(浏览器可视窗口)

绝对定位、固定定位元素一定为块盒

绝对定位、固定定位元素一定不是浮动

定位下的居中

某个方向居中

定宽(高)

将左右(上下)距离设置为零

将左右(上下)margin设置为auto

绝对定位和固定定位中,margin为auto时会自动吸收剩余空间

多个定位元素重叠时

堆叠上下文

设置z-index,通常情况下,该值越大越靠近用户

只有定位元素设置z-index有效(常规元素和浮动都无效)

z-index可以是负数,如果是负数则遇到常规流、浮动元素,则会被其覆盖

透明效果

opacity,它设置的是整个元素的透明度,取值范围是0~1

每个颜色都具有透明通道,0~1

rgba(红,绿,蓝,alpha)

hex:#红绿蓝透明通道

更多的选择器

更多的伪类选择器

m:first-child;→选中m类中第一个子元素

:first-of-type,选中子元素中第一个指定类型的元素

m:last-child;→选中m类中第一个子元素

:last-of-type,选中子元素中最后一个指定类型的元素

m:nth-child(n);→必须是第n个子元素且必须是m类元素,括号里可以写2n(偶数个)、even(等同于2n)、2n+1(奇数个)、odd(等同于2n+1)

m:nth-of-type(n);→子元素中第n个m元素

更多的伪元素选择器

m::first-letter→选中m元素中第一个字母

m::first-line→选中m元素中第一行文字

m::selection→选中被用户框选(用鼠标光标框选)的文字

相关文章

  • CSS 自学笔记(中)

    传送门: CSS 自学笔记(上) CSS 自学笔记(中) CSS 自学笔记(下) 继承、层叠和特殊性 继承 CSS...

  • CSS 自学笔记(上)

    传送门: CSS 自学笔记(上) CSS 自学笔记(中) CSS 自学笔记(下) 1. 简介 CSS 是层叠样式表...

  • CSS 自学笔记(下)

    传送门: CSS 自学笔记(上) CSS 自学笔记(中) CSS 自学笔记(下) 代码简写 布局缩写 paddin...

  • CSS学习笔记(2018-07-29)

    CSS学习笔记 CSS 指层叠样式表 (Cascading Style Sheets) CSS语法 CSS 规则由...

  • js操作样式

    CSS HTML 笔记

  • CSS入门学习笔记

    CSS学习笔记 CSS= 层叠样式表 cascading style sheets HTML 表达结构 , CSS...

  • CSS_基础

    初探css,了解个大概,本文主要是对"zhaolion:CSS入门笔记 - 初识CSS"的简要记录 CSS的好处 ...

  • CSS知识点整理

    写在前面:这是一篇学习CSS的笔记。重点在于罗列CSS的知识点。 CSS ㈠ CSS入门 什么是CSS?CSS 指...

  • MDC-css教程——基础知识

    笔记类文章 完全摘录自 MDN-css 什么是css Cascading Style Sheets css 并非仅...

  • HTML&CSS&JavaScript基本介绍

    本文内容为慕课网学习笔记。 CSS CSS样式类型 内联式css样式,直接写在现有的HTML标签中 嵌入式css样...

网友评论

    本文标题:css笔记

    本文链接:https://www.haomeiwen.com/subject/sfakbctx.html