diff --git "a/\345\210\230\346\233\246/20241014 -css\344\274\252\347\261\273.md" "b/\345\210\230\346\233\246/20241014 -css\344\274\252\347\261\273.md" new file mode 100644 index 0000000000000000000000000000000000000000..73915f149bb911fd047ff0ffb0372f0429f06eb8 --- /dev/null +++ "b/\345\210\230\346\233\246/20241014 -css\344\274\252\347\261\273.md" @@ -0,0 +1,500 @@ +## css伪类 +### 常见的伪类用法 +**常见的CSS伪类及其用法:** + +- `​:hover​`:当鼠标悬停在元素上时应用样式。 +​- `:active​`:当元素处于活动(点击)状态时应用样式。 +​- `:focus​`:当元素获得焦点时应用样式,通常用于表单元素。 +​- `:visited​`:选择已访问的链接。 +​- `:first-child`​:选择第一个子元素。 +​- `:last-child`​:选择最后一个子元素。 +​- `:nth-child(n)`​:选择第n个子元素。 +- ​`:nth-of-type(n)`​:选择同类型的第n个元素。 +​- `:not(selector)`​:选择不匹配给定选择器的元素。 + +### CSS伪类示例 +**hover 示例:** +```css +.button:hover { + background-color: #ff0000; + color: #ffffff; +} +``` +当鼠标悬停在按钮上时,背景颜色变为红色,文本颜色变为白色。 + +**focus 示例:** +```css +.input-field:focus { + border-color: #00ff00; + box-shadow: 0 0 5px #00ff00; +} +``` +当输入框获得焦点时,边框颜色变为绿色,添加一个淡淡的绿色阴影效果。 + +**nth-child 示例:** +```css +ul li:nth-child(odd) { + background-color: #f0f0f0; +} +``` +选择​ul​元素下的奇数项,并将它们的背景颜色设置为淡灰色。 + +**visited 示例:** +```css +a:visited { + color: #888888; +} +``` +选择已访问的链接,并将其文本颜色设置为浅灰色。 + +## 选择器序列练习 +```html + + + + + + Document + + + + +
+ + +
+ +
+ + + +
+ +
+ + + +
+ +
+ + + + + +
+ +
+ + + + + + + + + +
+ +
+ + + + + + +
+ +
+ + + + + + + + + + + +
+ +
+ + + + + + + + + + + + + +
+ +
+ + + + + + + + + + + + + +
+ +
+ + + + + + + + + +
+ +
+ + + + + + + + + + +
+ +
+ + + + + + + + + +
+ +
+ + + + + + + + + + + + +
+ +
+ + + + + + + + + + + +
+ +
+ + + + + + + + +
+ +
+ + + + + + + + + + + + + + +
+ +
+ + + + + + + + + +
+ +
+ + + + +
+ +
+ + + + + + + + +
+ +
+ + + + + + + + + +
+ +
+ + + + + + +
+ +
+ + + + + + + + + + + + +
+ +
+ + + + + + + + + + +
+ +
+ + + + + + +
+ +
+ + + + + + +
+ +
+ + + + + + + + + + + +
+ +
+ + + + + + + + + + + +
+ +
+ + + + + + + + + + +
+ +
+ + + + + + + + +
+ +
+ + + + + + + + + +
+ +
+ + + + + + + + + +
+ +
+ + + + + + + + + +
+ + +``` diff --git "a/\345\210\230\346\233\246/20241016 -css\346\240\267\345\274\217\350\241\250\347\232\204\347\273\247\346\211\277\346\200\247\345\222\214\345\261\202\345\217\240\346\200\247+\347\233\222\346\250\241\345\236\213\350\257\246\350\247\243.md" "b/\345\210\230\346\233\246/20241016 -css\346\240\267\345\274\217\350\241\250\347\232\204\347\273\247\346\211\277\346\200\247\345\222\214\345\261\202\345\217\240\346\200\247+\347\233\222\346\250\241\345\236\213\350\257\246\350\247\243.md" new file mode 100644 index 0000000000000000000000000000000000000000..88bc3789a473aec4900e52d15f024f4476309ea1 --- /dev/null +++ "b/\345\210\230\346\233\246/20241016 -css\346\240\267\345\274\217\350\241\250\347\232\204\347\273\247\346\211\277\346\200\247\345\222\214\345\261\202\345\217\240\346\200\247+\347\233\222\346\250\241\345\236\213\350\257\246\350\247\243.md" @@ -0,0 +1,393 @@ +## css的继承性和层叠性 +### 继承性 + 继承指的是继承父类标签的属性样式. + +  可以继承的属性有: + +  color tex-xxx font-xxx line-xxx (中间带 - 的) + + 注意: + +  盒模型的属性(浮动、绝对定位、固定定位)是不能继承下来的 + +   `` 标签有特殊情况, 设置a标签的颜色 大小一定要选中a, 千万不能用继承,继承不管用. + +```css + +``` + +### 层叠性 +对同一标签元素设置的时候, + +覆盖: 谁的权重大, 就会按照谁的设置显示样式,如颜色 大小等. + +(1)行内> id > class > 标签 + +     1000 > 100 > 10 > 1 + +(2)数数 数 id class 标签 (必须按照顺序数) + +(3)先选中标签,权重一样,看代码顺序, 以后设置为主 + +(3)继承来的属性 它的权重为0 ,与选中的标签没有可比性 + +(4)如果都是继承来的属性,保证就近原则 + +(5)都是继承来的属性,选择的标签一样近,再去数权重, 权重一样的,看代码顺序,以后设置的为主. + +- 数选择器,看权重 +- 权重一样的看代码顺序 +- 继承来的属性权重为0, 选中标签属性 > 继承来的 +- 都是继承来的,看就近,就近一致看权重,权重一致看代码顺序 + +### 权重一样的看代码 +```css + +``` + +### 继承来的属性权重为0, 选中标签属性 > 继承来的 +```css + +``` + +### 都是继承来的,看就近,就近一致看权重,权重一致看代码顺序 +```css + +``` + +### !important 的使用 + +  !important:设置权重为无限大(IE6不支持)。 + +  !important 不影响继承来的权重,只影响选中的元素。不要随便使用!important,因为使用它会影响页面的布局。 + +  示例:选择器{样式:值!important;} + +## 盒模 +### 盒模型示意图 +![alt text](image10.16.png) +### 盒模型属性 + (1)width:内容的宽度 + +  (2)height:内容的高度 + +  (3)padding:内边距,边框到内容的距离 + +  (4)border:边框,就是指盒子的宽度 + +  (5)margin:外边距,盒子边框到附近最近盒子的距离,兄弟之间的距离 + +```html + + + Document + + + + +
+ + +``` +### 盒模型的计算 + + 如果一个盒子设置了width,height,padding,border,margin(咱们先不要设置margin,margin有坑,后面会介绍)。 + +  盒子的真实宽度 = width+2*padding+2*border + +  盒子的真实宽度 = height+2*padding+2*border + + 总结: 如果保证盒模型的大小不变,加padding 就一定要减width或者减height + + 前提是:在标准文档流中 + +    padding:父子之间调整位置 + +    margin: 兄弟之间调整位置 + +### padding(内边距) + + 内边距, 就是边框到内容之间的距离. + +  另外padding的区域是有颜色的,并且背景颜色和内容的颜色一样。也就是说background-color这个属性将填充所有的border以内的区域. + +  注意: margin外边距也遵循这个原则. + +```css +后面跟的参数的个数不同代表的含义不同, 也可以通过具体的位置来确定内边距的值. + +   +``` +### border(边框) +  三要素: 宽度 样式 颜色 + +  如果颜色不写,默认是黑色。 + +  如果粗细不写,默认不显示边框。 + +  如果只写线性样式,默认的有上下左右 3px的宽度,实体样式,并且黑色的边框。 + +  示例:border三要素可以分开设置,也可以综合设置 + +```css + +``` +  border:none; + +  border:0; + +  表示border没有设置样式。 + +  border : transparent; 透明的 + +示例1:boeder制作小三角 + +```css + + +制作小三角 +``` + +示例2:border制作圆 + +```css + + +制作圆 +``` + +### margin(外边距) + +1. margin:外边距的意思,表示边框到最近盒子的距离。也有四个方向,并且可以设置1、2、3、4个值。 + +```css + +``` + +2. margin的塌陷问题(垂直方向的坑) + +  margin指兄弟标签之间的距离,因此使用的前提是必须在标准文档流下, + +  然而在标准文档流下给兄弟盒子都设置margin时: + +    (1)水平方向:不会出现任何问题,两者会相加显示 + +    (2)垂直方向:会出现"塌陷问题",那么以较大的为准,那么我们称这种现象为塌陷。记住这种现象,在布局垂直方向盒子的时候要注意margin的用法。水平方向上没有塌陷现象。 + +  当我们给两个标准流下的兄弟盒子设置浮动之后,脱离了文档的标准流,不占据页面位置,不再遵循那些规则,就不会出现margin塌陷的问题。 + +  因此以后在设置垂直方向上兄弟之间的距离时,只给其中的一个设置margin-top,或者margin-bottom即可。 + + + +3. 父子盒子方向的坑 + +  在标准文档流中,子盒子设置margin-top,父盒子没有设置border的话,也会跟着往下走。 + +```css + +``` +总结:margin是描述兄弟之间的关系,而padding描述的是父子盒子之间的关系,要先让子盒子在父盒子中的位置发生变化,需要设置父盒子的padding,使内容区域发生变化。 + +4. margin:0 auto; + + 注意: + +    (1)使用margin: 0 auto;时,水平居中盒子必须有width,要有明确width值; + +    (2)如果给盒子设置浮动、或者固定定位、或者绝对定位,那么margin: 0 auto;失效; + +    (3) margin:0 auto;使盒子居中,而不是居中文本,文字水平居中使用text-align: center; + +### 清除默认样式 + +  有一些标签会默认自带样式,比如有些会自带padding、margin等, + +  ul标签会默认的有padding-left需要清除, + +  a标签会默认有下划线, + +  input标签会默认有border和outline, + +```css +*{ + padding:0; + margin:0; +} +``` + +或者并集选择器清除样式 + diff --git "a/\345\210\230\346\233\246/20241017 -css\346\265\256\345\212\250.md" "b/\345\210\230\346\233\246/20241017 -css\346\265\256\345\212\250.md" new file mode 100644 index 0000000000000000000000000000000000000000..e41b8b7bdd8cc446f0f0b5f54f269a9e51a36f9d --- /dev/null +++ "b/\345\210\230\346\233\246/20241017 -css\346\265\256\345\212\250.md" @@ -0,0 +1,299 @@ +## CSS浮动(Float) + +在CSS中,浮动(float)是一种非常重要的布局技术。它允许元素脱离正常的文档流,并且可以向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边缘为止。这种行为使得其他元素围绕浮动元素重新排列,常用于图像或布局中的元素。 + +### 浮动的工作原理 + +当你对一个元素应用浮动时,这个元素会被移出正常的文档流,然后根据浮动的方向(左或右)移动。浮动元素的行为特点是: + +- 向左或向右移动:浮动元素会尽量向指定的方向移动。 + +- 其他元素的重新排列:浮动元素之后的元素将围绕它排列,而之前的元素不会受到影响。 + +- 不影响之前的元素:浮动元素不会影响之前的元素,只影响之后的元素。 + +### CSS中的浮动属性 + +CSS中的float属性用于指定元素的浮动方向。 + +它有以下几个值: + +- `left`:元素向左浮动。 + +- `right`:元素向右浮动。 + +- `none`:元素不浮动,保持在正常的文档流中。 + +此外,还有clear属性,它用于清除浮动,指定元素两侧不能出现浮动元素。 + +clear属性的值包括: + +- `left`:不允许左边有浮动元素。 + +- `right`:不允许右边有浮动元素。 + +- `both`:两边都不允许有浮动元素。 + +- `none`:允许两边都可以有浮动对象。 + +### 示例 + +以下是一些浮动的基本示例: + +```css + +/* 左浮动 */ +left-float { +float: left; +} + +/* 右浮动 */ +right-float { +float: right; +} + +/* 清除浮动 */ +clear-float { +clear: both; +} + +``` + +在HTML中使用时,可以这样写: + +```html +
我是左浮动的元素
+
我是右浮动的元素
+
我清除了浮动
+``` + +### 注意事项 + +使用浮动时,需要注意以下几点: + +- 浮动元素的父元素:浮动元素至少要与其最高的嵌套浮动子元素一样高。 + +- 清除浮动:有时候,你可能需要强制元素移至任何浮动元素下方,这时可以使用clear属性。 + +- 浮动元素的堆叠:如果有多个浮动元素,它们会尽可能地彼此相邻排列,直到没有足够的空间为止。 + +浮动是CSS布局中的一个强大工具,但也需要谨慎使用,以避免布局上的混乱。理解浮动的工作原理和如何清除浮动,对于创建整洁、响应式的网页布局至关重要。 + +## 作业 +### 浮动练习1 +```html + + + + + + Document + + + +
+ +
语言选择
+ +
+ +
+ +
+
+
+
+
+
+
+
+
+ +
+
+ + + + + + +``` +### 浮动练习2 +```html + + + + + + Document + + + +
+ + | 通知公告 + 更多>> + +
+
+ +
+ + +``` diff --git "a/\345\210\230\346\233\246/img/image10.16.png" "b/\345\210\230\346\233\246/img/image10.16.png" new file mode 100644 index 0000000000000000000000000000000000000000..efdb273ab992b4289eaf7eefc219f3bf4b49a12c Binary files /dev/null and "b/\345\210\230\346\233\246/img/image10.16.png" differ