前端学习day6(盒模型)

一、超链接

超链接的伪类:link用来表示没访问过的正常的链接(超链接独有)

visited用来表示访问过的链接(只能用来修改链接的颜色,超链接独有)

hover用来表示鼠标光标停留处的样式修改(可以修改颜色字体大小等)

active用来表示鼠标点击时的样式修改

a:link{
    color: green;
}
a:visited{
    color: gold;
}
a:hover{
    color: blueviolet;
}
a:active{
    color: aquamarine   ;
}

二、文档流(normal flow)

网页是一个多层结构,用户只能看到的最上层,而文档流是最底层,所创建的元素都是在文档流中的。所以元素只有两个状态:①在文档流中②不在文档流中

元素在文档流中的特点:

1、块元素

①在页面中独占一行

②默认宽度是父元素的全部

③默认高度是子元素的全部

2、行内元素

①行内元素不会独占一行,只占自身大小

②行内元素会自左向右水平排列,如果一行不能容下该行内元素,则会换行继续排列

③行内元素的默认宽度和默认高度是其本身大小

三、盒模型(box model)

1、块元素的盒模型

CSS将页面中的所有元素设置为矩形的盒子,此时的布局就相当于将不同的盒子放到不同的位置,盒子的大小(可见框)右内容区,内边距,边框构成

盒子的组成:

  • 边框(border)
  • 外边距(margin):当前盒子和其他盒子的距离,不会影响盒子的大小。默认情况下设置左和上边距的是移动自己,设置右和下是移动其他盒子或者元素。
  • 内容区(content):所有子元素和文本内容都会在内容区中排列,内容区的大小由width和height来设置
  • 内边距(padding):内容和边框的距离。内容区的背景颜色会延伸到内边距上
  • style: solid   dotted dashed  dobble

元素在其父元素中水平方向中的布局由下面几个属性共同决定

其父元素内容区的宽度 = margin-left + border-left + padding-left+width + padding-right + border-right + margin-right

以上等式必须满足,如果不满足,则称为过度约束,会进行自动调整:如果没有auto的情况,会调整margin-right的值使等式满足,如果某个值为auto,则会自动调整auto使等式满足。如果将宽度和一个外边距设置为auto,则宽度调整为最大。

使元素在父元素中水平居中:将该元素的width设置为固定值,将两个外边距设置为auto。

垂直布局:如果子元素大小超过父元素,则会溢出。 可以用overflow设置父元素。

overflow:  visible (可见,默认)

overflow:  hidden(隐藏)

overflow:  scroll(滚动条,水平垂直同时生成)

overflow-x:  scroll(水平方向滚动)

overflow-y: scroll(垂直方向滚动)

overflow:  auto

相邻垂直方向外边距会折叠。

兄弟元素之间:都是正值时,相邻会取较大值两者;一正一负时,取和;两者都是负值时,取绝对值较大的。兄弟元素的折叠不用处理

父子元素之间:子元素会传递给父元素(上外边距),因为两者的外边距是在一块的,父子元素之间的折叠需要处理

2、行内元素的盒模型

  • 行内元素不支持设置高度和宽度
  • 行内元素可以设置padding,border,margin,但是不会影响垂直方向的布局
  • display可以将行内元素转换为块元素,语法为:display: inline (设置为行内元素)    display:  block(设置为块元素) display:  inline-block(行内块元素,既可以设置宽高同时不会独占一行)  display: none(隐藏)
  • visibility:visible(默认值,正常显示)  visibility:  hidden(隐藏后还占据位置)

.b1{
    
    width: 200px;
    height: 200px;
    background-color: yellow;
    border-width: 10px;/*设置四个方向的宽度:上 右 下 左  */
    border-height: 10px;
    border-color: black;,
    border-style: solid;/*边框类型为实线,默认为none*/
    border: 10px red solid;/*简写*/
    padding-top: 10px;
    padding-right: 10px;
    padding-bottom: 10px;
    padding-left: 10px;
    margin-top : 10px; /*设置一个正值,往下移动10px*/
    margin-right: 10px;/*默认情况下设置右边距无影响*/
    margin-bottom: 10px;/*设置完向上移动10px*/
    margin-left: 10px;
    
}
/*边框,内边距的设置,会影响盒子的大小,此时盒子为220px*220px*/
/*margin使用语法:

/* 应用于所有边 */
margin: 1em;
margin: -3px;

/* 上边下边 | 左边右边 */
margin: 5% auto;

/* 上边 | 左边右边 | 下边 */
margin: 1em auto 2em;

/* 上边 | 右边 | 下边 | 左边 (顺时针)*/
margin: 2px 1em 0 auto;

/* 全局值 */
margin: inherit;
margin: initial;
margin: unset;*/

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值