Web前端105天-day05-CSS

day05


前言

第五天学习开始


一、复习

  • css引用方式
    • 内联
    • 外部
    • 内部
    • 导入(非重点)
  • css选择器
    • 标签
    • 通用选择器 *
    • class
    • id
    • 群组
    • 后代,空格
    • 子代,>
    • 兄弟,~
    • 相邻兄弟,+
    • 伪类 ,状态:hover
    • 伪元素,(:😃
  • css权重和优先级
    • 权重值1标签
    • 权重值10类
    • 权重值100id
  • 单位色值
    • px,%,vw,vh等
    • deg
    • ms,s
    • 十六进制#rrggbb ,rgb()[之后用到的时候会扩展]

二、元素和尺寸

1.元素的性质

引言

  1. div标签,它自占一行,包裹很多标签
  2. a标签,行内标签,横着排列
  • 块级元素
    • 比如:div、p、h1~h6、ul、ol、li、table等
    • 自占一行(默认父级元素的100%宽度)
    • 可以设置宽度和高度
    • 也可以包裹块级或行内元素
  • 行内元素(内联元素)
    • 比如:span、a、img、i、b、mark等
    • 不自占一行,只能紧紧包着内容文字
    • 设置宽度、高度无效
    • 不能包裹块级元素
    • 特例:a能包裹,是因为可以变为块使用
    • 特例:img特殊,他是可替换元素,有自己的图片大小,可以设置宽度和高度
    • 在行内元素中可以分出一种叫做“行内块”的类别,如:input、button,可以设置宽高

2.元素的显示属性【重点】

  • display: block; 块级显示
  • display: inline;行内显示
  • display: inline-block;行内块显示(布局不建议使用)
  • display:table;程表格显示
  • display:flex;弹性盒子的指定(后面学)

提前补充样式:

  • 字体大小:font-size: 12px;

  • 修饰线:text-decoration: none; none意思是不要修饰线,用的最多的情况就是把a的下划线给去掉

  • 文本/行内在块级内居中,内联中的文字居中(水平):text-align: center; center是居中的意思

  • 让单行的文字有一个行高:line-height: 40px;

3.尺寸

  • 宽度 width,值一般使用px单位
    • 块级默认宽度是父元素的100%,不写宽度也有宽度
    • 行内元素默认宽度是内容的宽度,设置宽度不生效
  • 高度height,值一般使用px单位
    • 块级元素没有默认高度,设置高度。没有设置高度,高度是被内容撑开的。内容包括文本和其他元素。
    • 行内元素默认高度auto,指文本文字的高度,设置高度不生效

4.边框

/* 边框线 */
/* 边框的宽度 边框的样式 边框的颜色 */
border: 5px solid black;
/* 以上三个值是可以拆成三个属性的 */
border-width: 5px;
border-style: solid;
border-color: black;

边框的方向可以单独指定:

  • border-bottom 下边框
  • border-top 上边框
  • border-left 左边框
  • border-right 有边框

边框样式:

  • solid 实线
  • dashed 虚线
  • dotted 点状线
  • double 双线

三角形的写法【面试题】

.d3 {
/* 因为块级元素都是默认宽度父元素的100% 所以要给0*/
width: 0;
/* 先把四个边都设置为透明,边框宽度决定三角的大小 */
border: 90px solid transparent;
/* 单独设置需要的边角有颜色即可显示 */
border-top-color: red;
}

注意:当边框加入到元素中的时候,元素会变大,边框越粗扩大的就越大。边框线会让元素本来的面积增大。

5.内间距

内间距指元素的某个边与内部内容的距离。padding指内间距的属性,内间距的距离值不能为负值,值越大距离越大。

行内元素的上下内间距是无法渲染出来的。视觉效果出来了,布局效果完全没出来。

img、input、button等这些元素内间距是生效的。

方向有四个方向:

  • padding-top 上内间距
  • padding-right 右内间距
  • padding-bottom 下内间距
  • padding-left 左内间距

简写值数量和位置:(上右下左)

  • 1个值,padding: 四个方向相同值;
  • 2个值,padding: 上下 左右;
  • 3个值,padding: 上 左右 下;
  • 4个值,padding: 上 右 下 左;
    注意:内间距的增大会导致整个元素的增大

使用场景:

  • 让元素内部距离外层父级元素的边有点距离显得好看,主要为了美化
  • 输入框的文字不要贴边显示
  • 文本卡片不要贴边显示

6.外间距

外间距原指兄弟元素之间的距离。

方向:

  • margin-top 上外间距 (自己移动位置)
  • margin-right 右外间距(挤开右侧的兄弟元素)
  • margin-bottom 下外间距 (挤开下方的兄弟元素)
  • margin-left 左外间距 (自己移动位置)

简写:

  • 1个值, margin:四个方向相同;

  • 2个值,margin: 上下 左右;

  • 3个值,margin: 上 左右 下;

  • 4个值,margin: 上 右 下 左;

  • 特殊值auto,其实指的值margin:auto,每个方向都是auto,可以自动计算取中间值,让元素产生居中效果。在文档流中上下auto是不会自动取中的。margin:上下的值可以随意取 auto;达到块级元素水平居中的效果。
    注意:

  • margin:auto只针对于块级元素中的块级元素水平居中,对文字和行内元素不生效。

  • 行内元素,上下外间距也不生效。img、input、button等这些元素外间距是生效的。

  • margin外间距可以是负值,正值指增大距离,负值减小距离(可以凹进去)

7.外间距的重叠现象

  • 在正常“文档流”中,上下排列的兄弟元素,外间距发生重叠时取最大值

  • 在正常“文档流”中,父元素的第一个块级子元素(子的上边和父的上边重合),父元素的最后一个块级子元素(子的下边和父的下边重合),都会产生外间距重叠现象。

  • 解决父子之间的外间距合并【重点】

    • 不提倡,给父元素加一像素边框,让父元素和子元素的外边发生无法重合的情况,第一个子元素的上外间距就生效了
    • 给父级元素一个上内间距,把第一个子元素向内挤 (提倡)
    • 给父元素设置溢出处理overflow: hidden/auto/scroll

8.盒子模型的计算

  • 标准盒子模型
    • 构成:内容(文本、内容、宽高)、内间距、边框、外间距
    • 内容代表元素的宽高(所占的宽高,设置的宽高)
    • 增加了内间距和边框之后整体会放大,占位会增加
    • 以上盒子模型如果遇到因内间距和边框增加之后而放大,还要手动减少宽度和高度,来保持总占位宽度的平衡(手动重新计算宽度)
    • box-sizing: content-box;
  • 怪异盒模型
    • 宽度=设置的宽度+内间距+边框
    • 当设置了box-sizing: border-box;相当于浏览器会重新计算真实元素宽度,不需要手动减少宽度了
    • 怪异盒模型不光会包括boder的宽度还会包括padding的距离,这时,宽度将被减的更小

9.溢出

当元素的内容,或者元素内的子元素超出该元素范围,就视为溢出。

溢出的处理有以下几个方法:

  • overflow: visible;默认子元素溢出
  • overflow: hidden;溢出隐藏 【常用】
  • overflow: auto;溢出出现拖拽条【常用】
  • overflow: scroll;x轴y轴都出现拖拽条

10.CSS中BFC

  • BFC翻译成“块级格式化上下文”
  • 他可以独立的渲染一个区域,这个区域与外部毫不相干
  • 可以消除父子外边距合并情况
  • 可以子元素清除浮动带来的影响(还没学)

总结

第五天学习结束

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值