HTML 、CSS笔记

盒子模型属性:box-sizing

标准盒子模型属性值::center-box

怪异盒子模型属性值:border-box

标准盒子模型大小= 内容宽高+内边距+边框+外边距

怪异盒子模型大小=内容宽高(内容宽高包括了内边距和边框)+外边距

        box-shadow 盒子阴影

            x 偏移量 必须写的

            y 偏移量 必须写的

            px 模糊半径

            px 扩展半径

            阴影颜色

                外部阴影

            inset 内部阴影

            多条阴影:

            box-shadow:150px 150px 0px 0px #000,

                300px 300px 0px 0px #f66;

            多条阴影由逗号隔开,写在前面的阴影在上面,后面的在下面

            阴影的移动都是相对于当前自己的盒子

float浮动:

1、将元素转成块级

2、能够设置元素水平的排列

3、能够元素并排

4、宽高默认是0,可以由内容撑开宽高

5、脱离文档流。浮到半空中,不占据文档流里的空间

6、父级没有高度------父级高度塌陷

7、浮动元素在遇到父级的边缘的时候会停下来

8、会挤出文字、行内元素、行内块

9、浮动元素会影响后面的元素

清除浮动:清除浮动带来的父级塌陷的问题,而不是不浮动

解决父级高度塌陷的问题:

1、给父级加高度-----扩展性不好

很多时候我们会由内容撑开盒子的高度,所以这种方法死板

2、overflow:hidden;------ 可能会导致想超出的东西显示不出来

我们要实现让元素内容超出隐藏的时候是不是必须得知道元素的宽高大小,

所以这个会强行计算浮动元素的高度,得到自身盒子的高度

3、给浮动元素的最后面加一个块级,设置clear属性清除浮动

4、用伪元素清除浮动---最主流的写法

.clear:after{

    content:'';

    display:block;

    clear:both;

}

使用伪元素清除浮动的公共样式clearfix给谁加?

给浮动元素的父级

clear  :  清除浮动

left   清除左浮动

right  清除右浮动

both   清除左右的浮动

只能用块级清除

外边距合并

在文档流中的块级,只要是垂直排列方向的块级,

他们垂直方向的外边距margin要是没有阻隔,就会发生合并

垂直方向的外边距margin:上下外边距

box的外边距为0

text的外边距为300

合并后以大的外边距为主 =  300

阻止外边距合并的方法:

1、增加第三者

2、父子级之间,给父级加边框或者padding都能阻止。

3、给父子级之间添加文本、第三者

4、变成行内块

5、变成浮动元素

  

定位

 

absolute:绝对定位,参考最近非 static 定位的父级进行定位。

A、使元素完全脱离文档流;

B、使inline支持宽高;

C、块属性标签内容撑开宽度;

D、没有定位父级则相对于body(整个文档)发生偏移;

E、绝对定位一般配合相对定位使用;

F、margin:auto失效;

fixed 固定定位,相对于浏览器窗口进行定位。与绝对定位的特性一致

Z-index:设置元素的堆叠顺序。拥有更高堆叠顺序的元素总是会处于堆叠顺序较低的元素的前面。(可负值)

注:只在定位元素上才能生效

定位元素:

定位元素有上下的堆叠顺序

后面的默认比前面的要高

position   定位属性

absolute  绝对定位

relative   

fixed

static    没有定位

 方位值: 距离参考对象的距离值

top   

right 

做定位元素参考对象必须满足的条件:

1、absolute的参考对象只能是absolute、relative、fixed

2、必须是直系父级

3、必须是除了static以外定位元素

会一直往上寻找参考对象,如果不符合条件,会继续往上找,

直到找到body。

判断是不是定位元素,看他的position属性

绝对定位会让元素变成块级

如果不定义宽高,默认会由内容撑开宽高 

relative  :相对定位,只相对于自己

1、不改变元素的类型

2、不给方位值的时候还存在文档流里面

3、如果给了方位值,原本在文档流里的空间会保留,移动的地方不存在于文档流了

一般会配合绝对定位使用

方位值:只有定位元素才会生效

top

bottom

right

left

定位元素对margin:0 auto;会失效

fixed   固定定位

参考对象永远是窗口

absolute和fixed的唯一区别就是参考对象不同

z-index  设置定位元素的层级

同级定位元素,默认后面的比前面的层级要高,如果不是同级定位元素,不能直接比较层级,找你们能比较的定位元素的父级来比

vertical-align

所有具有内联特点的元素都具有一个默认的上下对齐方式

行内、行内块

想让多个内联元素对齐的时候就使用这个

vertical-align  

baseline   默认值,基线对齐

top     元素的顶边与一行中最高元素的顶边对齐

bottom  元素的底边与一行中最高元素的底边对齐

middle  将元素中垂点放在父元素中部对齐。会有一丢丢误 差,能做到视觉上居中对齐。

使用的时候兄弟内联间都加这个属性

----会受到行高的影响

text-top   与父元素文本的顶端对齐

text-bottom  与父元素文本的底端对齐

----会受到文字大小的影响

图片的基线在图片的底边

行内元素的基线在小写字母x的底边

vertical-align对块级无效

消除img下方的间距:基线对齐造成

1、转块级

2、只要不是baseline都可以,最常用的是top去消除间距

像素值的时候,负值在基线下方,正值在基线上方

form  表单标签,块级

表单作用:收集用户输入的个人信息

action 提交地址

method   提交方式,get 和 post,post保密性好

表单是特殊重要的元素,所以都会给表单写ID

input   表单控件

type:

text   文本输入框

password   密码框

radio  单选框

submit  提交按钮

reset  重置按钮

image  图片提交按钮  很少用

file   上传文件

标签属性:

placeholder   提示文本

disabled   禁用当前表单控件

checked    默认选中

outline  控件的外框

具有和border一样的属性值

伪类:

:focus   选择获得焦点的元素.鼠标按下去

只有tab键能选中的元素,才对这个伪类生效

select   下拉选框

option   选项

标签属性:

size  设置能看到的选项数目

selected   默认显示哪一项选项

textarea多行文本框/文本域

cols  定义宽度

rows  定义高度

resize  设置调整文本域的尺寸

none  不许调整

vertical    可以调整高度

horizontal   可以调整宽度

table  表格

thead   表格的头部

tbody   表格的主要内容

tfoot   表格的脚部

tr   表格的行

td单元格:

文本垂直居中

th:表头的单元格

文本水平垂直居中,文字默认加粗

表格特点:

1、如果你只给表格写了高度,那么默认tbody占据比例是最大的

2、每一列中,以最宽的单元格宽度为整列单元格的宽度

3、每一行中,以最高的单元格高度为整行的高度

4、表格table定义的宽度,表格内部所有的元素都会根据这个宽度值来进行调整

5、如果内部元素加起来超过表格的宽度,那么会按照比例缩小

6、如果内部元素加起来小于表格的宽度,那么会按照比例放大

7、高度可以大不可以小

display : table  表格类型。对外是一种块级,对内是表格

thead、tbody、tfoot、tr:不支持padding和margin

th、td:不支持外边距margin

rowspan  跨行

colspan   跨列

border-collspan  合并单元格

表格:

1、改动一个地方就会导致整体布局变乱

2、表格适合用在后台

3、切忌不要用表格去布局

4、等宽、等高的特点

thead和tfoot很多时候可以不写,就写一个tbody。

要么不写thead和tfoot,要么全写

display

table    类似table

table-row   当前元素具有和表格的行tr一样的效果

table-cell    类似td和th

iframe

frameborder  框架的边框

0  不显示

1  显示

 scrolling

no    不显示滚动条

yes   显示滚动条

auto  根据内容显示线条

属性继承

font、text文本类的属性都有继承性(包括line-height、color)

a标签不会继承父级的文字颜色

h标签不会完全按照继承的文字大小去显示

inherit   继承父级该属性的属性值

transition  

过渡:从一种样式到另一种样式的变化(需要两种状态)
缺点: 1,需要触发。2,一次性的。3,只有开始和结束,中间无法控制。4,不能控制多个值

transition-property   你需要过渡的属性名称

all  所有能过渡的属性

    transition-duration   过渡花费的时间

transition-timing-function     过渡的速度曲线

ease   慢速开始,然后加快,结束变慢

linear  匀速

ease-in 规定以慢速开始的过渡效果

ease-out 规定以慢速结束的过渡效果

ease-in-out 规定以慢速开始和结束的过渡效果

transition-delay    延迟时间

能过渡的:大小、颜色、opacity、display

visibility   设置元素的可见方式

hidden   让元素不可见

visible  让元素可见

visibility:hidden 和 display:none的区别:

display:none 是完全消失,页面hover不到,并且会造成其他的属性没有过渡效果

visibility:hidden  也是消失,但是存在于页面上,也hover不到,并不会影响

别的属性的过渡效果。

CSS3选择器

div > p   匹配div直接后代为p的元素(孙子后面的不算)

div + p 匹配div后面的邻居为p的元素

div ~ p 匹配div后面的所有邻居为p的元素

[class = ’box’]  匹配具有class属性并且值等于box并且只有这个值的元素

[class ~= ’box’]  匹配具有class属性并且值等于box的元素

[class |= ’box’]  匹配具有class属性并且值等于box或者以box-开头的元素

[src ^= ‘image’] 匹配具有src属性并且值以image开头的元素  模糊匹配

[src $= ‘png’] 匹配具有src属性并且值以png结尾的元素  模糊匹配

[src *= ‘gi’] 匹配具有src属性并且值里面包含gi的元素  模糊匹配

伪类选择器

类型杂乱的时候,用type,因为无视其他元素,找到我需要的元素。

类型差不多的时候,用child,因为我就要选中那个位置的什么元素

li :first - of - type{}   选中li是其父元素的第一个li的元素,无视其他子元素

  li : first - child{}     选中其父元素的第一个子元素并且是li元素,不无视其他子元素

li :last - of - type{}   选中li是其父元素的最后一个li的元素,无视其他子元素

li : last- child{}      选中其父元素的最后一个子元素并且是li元素,不无视其他子元素

li : only - of - type{} 选中其父元素只有一个li类型的子元素 ,其他子元素可以多个 但li必须只有一个, 当li有两个以上时无法匹配

  li : only - child{}     选中其父元素只有一个li的子元素,独生子,有其他子元素则无法匹配

  li : nth-of-type(3){}   选中其父元素里的第三个li元素,无视其他子元素

  li : nth-child(3){} 选中其父元素的第三个元素且必须是li元素,不无视其他子元素

  li : nth-last-of-type(2){}  其父元素倒数第二个li元素,无视其他子元素

  li : nth-last-chile(2){}  其父元素倒数第二个li元素,不无视其他子元素

  P : first - line{} p元素里的第一行

P : first - letter{} p元素里的第一个字(可以做首字母大写)

P :: selection{} p元素里被选中的文字

P : empty{} 为空的p元素  里面什么都不能有,空格都不能有

P : not(:first-child){} 除了最后一个子元素之外的p  取反

input : enabled{} 所有启用的input元素

input : disabled{} 所有禁用的input元素

CSS3新增背景属性

background-size cover:覆盖 让背景图片刚好充满盒子

contain:包含 背景图片在盒子里完全展示

都是等比缩放和放大

背景关联

background-attachment:fixed;会使下面的失效

background-origin:;背景图片显示的起始位置

padding-box 从padding区域开始显示

border-box 从border区域开始显示

content-box 从content区域开始显示

background-clip:;

content-box  内容以外的全部剪掉

border-box  border以外的全部剪掉

padding-box padding以外的全部剪掉

新增颜色

background-color:hsla(360,100%,50%,0.5);

hue 色调 0-360 0红色 120 绿色 240 蓝色

saturation 饱和度 0%-100%

lightness 亮度 0%-100%

线性渐变

渐变实际上是image的一种类型

linear-gradient()线性渐变

渐变方向:

deg 正值变大顺时针变化 减小逆时针变化

关键词 to left 270deg  to right 90deg   to bottom 180deg   to top 0

颜色范围 具体像素值 百分数

background:-webkit-linear-gradient(to bottom, red ,orange ,yellow);

/*to是去到哪*/

filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=’#000000’,endColorstr=’#ff0000’,GradientType=’0’);

/*颜色不能简写 1代表上下 0 左右*/

兼容写法和标准写法 不同点

1.兼容不加to

2.相差90deg

3.兼容写法正值变大逆时针变化 减小顺时针变化

径向渐变

background:radial-gradient(at top,red,black,blue);

/*at 是在哪开始*/

background:-webkit-radial-gradient(top,red,black,blue);

/*兼容写法不加at*/

radial-gradient()径向渐变

形状 circle圆形  ellipse椭圆

圆心位置 加上at top left bottom right center

渐变的大小 具体的像素值 半径一个代表x轴半径 一个代表y轴半径 、

当设置的是圆形,但是两个值不一样的时候,是失效。

farthest-corner 圆心到最远的角的距离为半径 默认

closest-corner 圆心到最近的角的距离为半径

farthest-side 圆心到最远的边的距离为半径

closest-side 圆心到最近的边的距离为半径

重复渐变

重复径向渐变repeating-radial-gradient()

重复线性渐变repeating-linear-gradient()

倒影和遮罩

-webkit-mask-image:url('images/2.png');

-webkit-mask-size:50%;

-webkit-mask-repeat:no-repeat;

-webkit-mask-position:center;

-webkit-mask:url('images/2.png') repeat center/25%

倒影不占位置

位置direction above 上面 below下面 left right

offset 图像和倒影之间的距离 可以为负值

mask-box-images 遮罩图像 只能放透明图片 png

-webkit-mask-size:50%;遮罩图像的大小

-webkit-mask-repeat:no-repeat;遮罩图像的平铺

弹性盒模型

容器属性 

flex-direction:;定义主轴方向

row 主轴水平方向 从左往右排列

row-reverse 主轴水平方向 从右往左排列

column 主轴竖直方向 从上到下排列

column-reverse  主轴竖直方向 从下到上排列

flex-wrap:;定义交叉轴方向 是否换行

nowrap 默认不换行

wrap 换行

wrap-reverse 交叉轴反方向

flex-flow:flex-direction flex-flow;复合属性

justify-content:;定义项目在主轴上的对齐方式

flex-start 以主轴起点对齐

flex-end 以主轴终点对齐

center 在主轴上居中对齐

space-between 两端对齐,轴线之间的间隔平均分布

space-around 每个项目两侧的间隔都相等

align-items:;定义项目在交叉轴上的对齐方式 单行

stretch 默认值 当项目没有高度时,撑满交叉轴的空间

flex-start 以交叉轴轴起点对齐

flex-end 以交叉轴终点对齐

center 在交叉轴上居中对齐

baseline 基线对齐

align-content:;定义项目在交叉轴上的对齐方式 多行

stretch 默认值 当项目没有高度时,撑满交叉轴的空间

flex-start 以交叉轴轴起点对齐

flex-end 以交叉轴终点对齐

center 在交叉轴上居中对齐

space-between 两端对齐,轴线之间的间隔平均分布

space-around 每个项目两侧的间隔都相等

项目属性

order 伸缩项目的排列顺序

数字越小,排名越靠前 支持负值

flex-grow:; 伸缩项目应该占用容器内的空间

0 不占用容器空间 由内容撑开  1 平分占用

部分li 2 部分是1 前者分的空间更大

flex-shrink 伸缩容器宽度不够得时候,伸缩项目对应缩小得空间

1 会缩放  0 不缩放

部分li 2 部分是1 前者缩小空间更大

flex-basis 项目初始得宽度

flex:1 1 auto;=flex:auto;

会放大 会缩小 自动

flex:0 0 auto;=flex:none;

不放大 不做小 自动

flex:1;

align-self:;定义单个项目在交叉轴上的对齐方式

stretch 默认值 当项目没有高度时,撑满交叉轴的空间

flex-start 以交叉轴轴起点对齐

flex-end 以交叉轴终点对齐

center 在交叉轴上居中对齐

baseline 基线对齐

过渡:从一种样式到另一种样式的变化(需要两种状态)

猜你喜欢

转载自blog.csdn.net/qq_36379070/article/details/81029164
今日推荐