css textbox 边框去掉_Python Web全栈之旅11--Web前端●CSS知识点汇总,建议收藏

本文详细介绍了CSS中的样式表类型、语法、层叠规则、盒模型的概念及应用,包括内部样式、内联样式、外部样式、选择器、属性继承、属性值计算过程、盒模型的组成部分以及浮动和定位原理。同时,探讨了如何通过box-sizing和background-clip调整元素宽高及背景作用范围,以及处理溢出和空白的方法。
摘要由CSDN通过智能技术生成
54634e1e0f649091bdc18c7a1f833d9a.gif
0f4a636b689d275a28f14a520c3752d1.png

1、三种样式表

● 内部样式表:一般写在head元素中

● 内联样式表:元素的全局属性style中

● 外部样式表:一般在head元素中(推荐)


2、css代码语法

css语法=选择器+申明块

● 选择器

① 基础选择器

433024e16e791bbb3c3fbd836ad87408.png

对将来学习Python爬虫很有帮助

I、元素选择器 elementname

本色出演,不需要加其他字符。

II、类选择器 .classname

点不能省略

III、ID选择器 #idname

井号不能省略

② 属性选择器 elementname[attr]

③ 伪类选择器

选中某些元素的某种状态

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

4c22e80c9efaa791b5c6f33220aca789.png

II、visted:超链接访问后的状态

043d19eb2a9e48e9108ac3b5b8b17032.png

III、hover:鼠标悬停的状态

63d3d626d66f7b8223c50bb6f3b0b04e.png

IV、激活状态,鼠标按下状态

8d7f7a829ae321d738989371606c16b1.png

爱恨法则:love hate

④ 关系选择器

I、邻近兄弟元素选择器 A + B

作用 only one 元素。A跟B有同一个“父亲”,B紧跟A元素,好比亲兄弟。

c4f74c91d5884c1833a84f946ac8b795.png
74f124e87caf72c9ab4a944a2fe57e09.png

II、兄弟元素选择器 A ~ B

注意:是A的相邻元素。A和B有同一个“父亲”,B不必须紧跟A。

6661a11678b77e0f7f812b7953acf74f.png

III、直接子元素选择器 A > B

直接子元素,只选择一代,不是所有的子元素都能集成A的“财产”

ce501f4577611cee3ba625ac780fba26.png
eac20002eb27b6073865e9bcab81ebb8.png
d2b3a5bf9645795e9d9f7f92ba44b1dc.png

IV、后代元素选择器A B

A B 选择所有后代,范围更广,使用频率最高。

23544164f464a208ccde229c2f7e5b6a.png

3、css层叠

当同一样式多次应用到同一元素时,css会通过层叠解决声明冲突

哪一种样式会最终被选中呢?

遵循的3个准则:

比较重要性 > 比较特殊性 > 比较源次序

● 比较重要性

先去掉一种特殊情况:重要声明,在属性值后加!important

676843775ee2ba958db6bc7ee2dfb8b5.png
01afc9aeb1bd59f1fd162f7ff8e7b9ce.png

● 比较特殊性

css层叠会选择特殊性最高的样式

特殊性从高到低:

内联样式 > id选择器 > 类选择器 > 元素选择器

87b235f09bc1d2caae5df1c276e1e74a.png

类比场景:打扫卫生

“内联样式”的特殊性:好比老师走到Python大星面前,对他说:你负责擦窗户。

“id选择器”的特殊性:老师说学号为040105的学生打扫走道

“类选择器”的特殊性:老师说第一组打扫教室

“元素选择器”的特殊性:三年级二班打扫操场东南角


我们知道css中会出现组合的情况,这个时候怎么比较特殊性呢?

我们可以通过“积分制”来判断

“内联样式”----------------积分1000

“id选择器”----------------积分100

“类选择器”----------------积分10

“元素选择器”--------------积分1

属性选择器、伪类选择器也各自积10分;

伪元素选择器积1分

最终,谁的总积分高,就听谁的!


4、继承

● 子元素会继承父元素的所有属性吗?

d42f0fc17fbb92ea90836c7752e6350e.png

儿子会继承父亲的部分基因,而不是全部基因。

● 什么情况下子元素会继承父元素的属性?

71fd8fa5ea33e09676da04f223aab6fa.png

当子元素的继承属性没有指定值时,就会继承父元素同一属性

● 什么样的属性能被继承?

一般来说,跟文字内容相关的属性都能被继承,比如说font、color等属性

● 什么样的属性不能被继承?

e114095778134467218a4d212e03279b.png
477c2f5b07d588948c410d9a4f12dd44.png

常见的border、background等属性不能被继承

我们可以通过MDN官方文档查看css属性是否可以被继承

d3c0898257699d520e831de4a180fa98.png

5、属性值的计算过程

45c272d254d54d4bade0beb7f11734e4.png

● 什么叫确定声明值?

指样式表中没有起冲突的属性值

● 如果属性值发生冲突怎么办?

层叠冲突

● 如果某些继承属性在样式表中没有说明,会如何?

继承父元素的继承属性

● 如果是非继承属性,会如何?

使用默认值

举个栗子描绘下“属性值得计算过程”:

通缉犯画像:根据目击证人的描述,明确该罪犯带着眼镜,黄头发,此乃“确认声明值”;

该罪犯长得有点像电影明星黄X和王XX,更偏向王XX,此乃“层叠冲突”;

听口音该罪犯是东北人,可能正往北方跑,此乃“使用继承”;

肤色yellow,此乃“使用默认值”

6、盒模型

● 什么是盒模型?

4e8edebccad5874003f39251989cb661.png

我们在页面“审查”时经常看到的这个红色区域就是盒模型

● 盒模型分类

① 行盒:display属性等于inline的元素

注意:display属性是非继承属性

② 快盒:display属性等于block的元素

行盒和块盒最大的区别:

30d92a1a1ec413d2b3cf9b43f8ca6690.png
d1fce24d54d89f079d398f409a3b6095.png

● 常见的块盒元素

容器元素、h1~h6、p

● 常见的行盒元素

span、a、img、video、audio

● 盒模型的4个组成部分

4e8edebccad5874003f39251989cb661.png

每一个颜色区域代表一个组成部分

从内到外依次是:

da5e4c3af36883d50939e4b1bdb2af89.png

① 内容区,我们也叫“内容盒”

我们最最最常见的width、height设置的是盒子内容的宽高

② 填充(外边距)padding

有四个属性:

padding-left,padding-right,padding-top、padding-bottom;

这四个属性可以简写为padding。

I、padding:上 右 下 左

传四个参数,你可以想象成一个顺时针的钟

II、padding 上下 左右

传两个参数,第一个是上下边距的参数,第二个是左右边距的参数

c52af9ffbdebdf0fa4723f83ae484fce.png

③ 边框 border

04bb78a0ce980d2d488c1b870f82559a.png

边框样式:border-style

边框宽度:border-width

边框颜色:border-color

简写为border

3d3eca502f47e9de85fd1007d2b0534b.png
bbdee21d0bfc5faddc50377f574e2e72.png

④ 外边距 margin

有四个属性:

margin-left,margin-right,margin-top、margin-bottom

这四个属性可以简写为margin

使用方式和padding一样


7、盒模型应用

● 改变宽高作用范围

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

97caa44789c435ad2b0548133bdd7267.png

实际工作中,UI设计师给到是ps源文件,标注的是我们前面说到的“边框盒”的宽高。

默认情况下,我们width和height是设置的“内容盒”的宽高。

cbdc318950dd38380e9902e69c3ac64b.png

有一个“神器“” -- box-sizing 属性

box-sizing: border-box;

这样设置后,width和height的作用范围就是“边框盒”。

d31a04afba430fa9afa387b86eb85bed.png

● 改变背景作用范围

默认情况下,背景作用范围是“边框盒”。

a1bc59979561ecdd0f96321567b1a608.png
4266337bc6c03dedf427573d74d3bf61.png

有一个“神器“” -- background-clip 属性

background-clip: content-box;

这样设置后,width和height的作用范围就是“内容盒”


● 溢出处理

fd5c7788966583b1485b4ad952389e9b.png

overflow属性应运而生

常用的3个属性值:hidden、scroll、auto;

hidden:溢出部分隐藏

scroll:出现滚动条

auto:自动


● 空白处理

de41f7fb40a243442dbcdd275e879860.png

可以看到单行文字过多时,显示3个点

a567cd7a6edb4373a9f6bf07072db4e7
b8e870412a7f3d40cce0150299c6bfaa.png
8b68391c5bdbb555cca2b0db9636a16f.png

8、行盒模型

8974ca7f42becec2393d6ce60e3c5eb0.png

● 常见的行盒

包含具体内容的元素,如span、strong、em、i、img、video、audio

● 行盒一般的特征

① 行盒沿内容沿伸

② 行盒的宽高设置无效

4cc7c5ae75b7c0104a70e00db5acd52c.png
e11481f1e9acecdbef86d28491d29969.png

行盒的宽高跟字体大小、行高、字体类型有关

③ 填充区、边框、外边距

水平方向:生效,和块盒一样

垂直方向:不会实际占用空间

● 行块盒

8390110400e358a2559644f5c01fc0ff.png

不独占一行(行盒特征),盒模型所有尺寸都生效(块盒特征)

分页应用

18016b879ad205e427475e794816bad2.png

效果:

d9022e28bc8b30723c33c2cd1c280cfd.png

9、视觉格式化模型

1e6e868f9b8200d6c17d652df4bcc868.png
08987e986f75ebd2de7d8b4e1441b98d.png

I、 常规流

9c9da9b8b23e3c92ca1f70201be7261e.png
4f3067e330078c4eb577c3b2baac0d9a.png

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

● 总体规则

块盒独占一行,行盒水平依次排列

● 包含块

e68a087df8e80e2c06aea1206aec171e.png

每个盒子都有它的包含块,包含块决定了盒子的排列区域

绝大数情况下,盒子的包含块是其父元素的“内容盒”

3eae75713aeead6bc7c698570bd1a3b3.png

● 水平方向

重点!重点!重点!

f6a2769017b41a09991b56a83b94225e.png

当块盒没有设置width时,width的默认值为auto

当块盒没有设置margin时,margin默认值是0

auto的作用:将剩余空间吸收完

当margin和width都设置为auto时,width优先将剩余空间吸收完。

当宽度、内边距、边框,外边距计算完,仍然有剩余空间,该剩余空间被margin-right(土黄色区域)全部吸收。

dbb7bdb34fc6db901c965f272cfc2670.png
129ec60fc8706482d929f5fcdd30377e.png
bbc157ce6a0fa338095778370ffc6e45.png
5cc786b0cfc524d13e58e0ea653b8131.png

在常规流中,块盒在其包含块中居中,前提是宽度已设置,然后左右margin设置为auto。

● 垂直方向

如果height设置为auto,适应内容的高度

如果margin设置auto,表示0

● 百分比取值

9832b15d37a567eec907f18eee4dd3a4.png

padding、宽、margin相对的是包含块的宽度!宽度!宽度!!!

39635ded18790fe5dc8b950dab7a43e7.png

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

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

● 上下外边距的合并

c589850ca17c573fcf1f6f6aaeed1892.png

两个常规流块盒,上下外边距相邻,会进行合并。

两个外边距取最大值

兄弟元素的上下外边距

0b4725dc5818983e53e3bd317fdd46f3.png
e45f8609f1f30ae327837beaca789e5d.png

父子元素的上下外边距

75ce25fb8e7dd27d6db9cef59eff1f7c.png
778af13b84e8753239b7dbc16c9f2b4f.png
1c3928760411e6543c8e864446dd6b70.png

方法 ① :

父元素增加border,使其内外边距不相临

方法 ② :

父元素增加padding,子元素margin去掉

● 常规流总结

常规流分为行盒和块盒,块盒横向撑满包含块,纵向外边距的合并。

下一个行盒的头部接上上一个行盒的尾部。

II、 浮动

30fada889908ce6f689827a5b3a293e8.png

● 应用场景

① 文字环绕

② 横向排列

忘记了吗?前面我们还能使用“行块盒”(display:inline-block)实现横向排列。

● 浮动的基本特点

① float:left /*左浮动,元素靠上靠左*/

② float:right /*右浮动,元素靠上靠右*/

4cc7c5ae75b7c0104a70e00db5acd52c.png
bbedebcfb4df6ac29b0c4f945971c0c2.png

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

● 浮动后的盒子虽然是block,但是没有独占一行

4170325e71ec7184bccf14cc5d0a297d.png

页面效果:

dc454c6d1746ebe6d97b1511d6929b38.png

我们可以通过“元素审查”看到class为left和right的元素设置为float后,

分别显示在父元素内容盒的左右两边,并不是独占一行

● 浮动盒子的宽度特点

当浮动盒子的宽度为auto时,适应内容的宽度

92a4951b566fa4ecb7b8bf28e004db83.png

● 浮动盒子的高度特点

高度为auto时,无论是常规流还是浮动以及定位中,都是一致的,适应内容的高度

6fb2ad92de4a034b8dcb2817430ed3b3.png

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

0490e1acd720d61cfe452fc78d2ed503.png

页面效果:

7fc98048b89a27ac5e67c4f59faf11c3.png

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

0b7d9e04db9224a5b376c0e519b53cc5.png

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

4a93951b277150c0d66438ce682db058.png
e94f8ca7b64d050f84868229544fd33d.png

从上图中我们可以看到,文字在块盒中,但是文字却环绕在img四周,

这是因为浏览器会自动生成一个行盒包裹文字,该行盒叫“匿名行盒”,

块盒p的总宽度还是不变的。

5f63214295fa6531936b3a1e9ec040eb.png

① 如果我们修改p元素的margin-left,会发生什么?

193a3428d0a7f8422cafc445fb2d9876.png

结合我们之前学过的知识,修改p元素的margin-left,是相对于包含块的,并不是img元素

② 修改img元素的margin-right

12d8d2968fb5561b14e129e3e887d8e4.png

● 高度坍塌

5f4e7463b5e4b592a30152f05aa355e6.png

如下图,父常规流盒子未设置高度,尽管子浮动盒子有高度,

但是没有将父盒子撑起,这就是所谓的父元素“高度坍塌”

23fe50b00dacf98f5f59ba009a2f3c85.png
b9c93ec172c783594f0741ec6833631e.png

使用clear属性清除浮动

方案 ① 增加一个div

39d37217ff837b0b01a004aff082092d.png
562793ca260480d263d71aaac8321bc4.png

方案 ② 使用伪元素

a6d69713e1ac42cad800c2c13e961fe7.png

III、 定位

37868c98e4fa8497f193fc97ac9e914d.png

● 定位概念

手动控制元素在包含块中的精准位置

● 四种类型的定位

static:静态定位(不定位)

relative:相对定位

absolute:绝对定位

fixed:固定定位


● 定义元素

一个元素,只要position的取值不是static,认为该元素是一个定位元素


● 相对定位

position: relative;
7b7a507f52fe7f0b8fd03ce1742a2a62.png

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

盒子的偏移不会对其他元素造成任何影响。

1b3d0bfdff01c6f1c3401c5011d4421a.png

● 绝对定位

33ccbae469886903ef7a3e9156779e6c.png
position: absolute;

绝对定位是相对于包含块的位置,脱离文档流。

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

26b928a77e398e2af70bde1de3042614.png

● 固定定位

position: fixed;

固定定位除了包含块的位置其他和绝对定位一样,脱离文档流。

固定定位的包含块:

固定为视口(浏览器的可视窗口)

e5e5c7f1820c9d8dfdeb2dad04401620.png

● 定位下的居中

针对绝对定位和固定定位

① 定宽(高)

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

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

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

e30e7aff81323a3a9f25c65280874aa9.png

汇总

>>>Python Web全栈之旅04--Web前端●走入CSS的世界

>>>Python Web全栈之旅05--Web前端●CSS层叠样式的理解

>>>Python Web全栈之旅06--Web前端●盒模型

>>>Python Web全栈之旅07--Web前端●行盒模型

>>>Python Web全栈之旅08--Web前端●视觉格式化模型

>>>Python Web全栈之旅09--Web前端●CSS浮动

>>>Python Web全栈之旅10--Web前端●CSS定位

55a7009f0942cb07d7537a5b8dd1a9cf.gif
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值