CSS的布局

文章详细介绍了CSS中的盒子模型,包括内容、内边距、边框和外边距的概念及如何影响元素大小。接着,重点讲解了Flex布局,如何设置display:flex实现弹性容器,以及flex-direction、justify-content、align-items等属性用于控制元素在主轴和侧轴上的对齐方式。此外,还提到了浮动元素的影响及清除浮动的方法,以及盒子阴影、文字阴影和多列显示等其他CSS特性。
摘要由CSDN通过智能技术生成

一、盒子模型(重点)

        css会把所有的html元素都看作盒子

        盒子组成部分:

影响盒子大小的不是外边距(margin),是边框、内边距、内容物(border  padding  content)

内边距

           内边距(padding):内容区域到边框的距离,也叫留白

设置内边距:

     padding-top:20px;----上边框的内边距

     padding-left:20px;----左边框的内边距

                            -----------还有right / bottom属性值

内边距默认影响盒子的大小,相当于加到了盒子的宽高

复合属性:

      padding:20px;-------四边都是20px

      padding:10px 50px;------两个值时,第一个代表上下的padding值,第二个代表左右的padding值。

      padding:10px 20px 30px;-------如果三个值,第一个是,第二个是左右,第三个是

      padding:10px 20px 30px;---------如果四个值,代表上、下、左、右

给行内元素加内边距:

               如果给span(行内元素)加padding:

Span{

      padding-left: 20px;

          }-------仍然可以设置,整个盒子总大小变大

注意:行内元素的左右padding可以设置,上下padding不行

避免padding将盒子撑大:

        加一个box-sizing:border-box;-------解决padding影响盒子大小-------内容物区域被影响变小了,整个盒子大小不变

外边距

            -------------外边距不改变盒子大小

               外边距margin:两个元素之间的距离

设置外边距:

box1{

    margin-left:20px;

    margin-right:20px;

}

        -------还有top / bottom属性值。

 margin四个值时代表:上、右、下、左,的外边距;

auto--------尽可能离远;

margin: auto;-------尽可能离远四边的外边距---------实现元素的水平居中,左右居中

外边距塌陷:

    父盒子里第一个子盒子的margin-top值会被父盒子抢掉

解决办法:

1、给父元素加边框:border:1px solid black;

2、给父元素加内边距:padding:10px ;

3、偏方,防文本溢出overflow:hidd 

二、flex布局(重点)

    网页布局:表格-----不灵活

    flex-----使盒子变成弹性容器,使里面的元素变成项目

设置flex

        div--------块元素不能连着显示,

        在父级元素里加:display:flex;----------使父级变成弹性容器-------实现一行显示多个块元素

        块元素里,不止在div中,a中也可以

主侧轴:

    默认情况下:上面横着排列是主轴,左边竖着排列是侧轴。是相对的,可以改变

改变主侧轴——flex-direction

     flex-direction:row-revers;-------------沿行翻转

     flex-direction:column-revers;--------沿列翻转

     flex-direction:column;     -------------相对翻转(对角交换)

改变主轴单行对齐方式(父元素中的各个子元素) justity-content

    justity-content:space-between;-----两边贴边,中间平分剩余空间

    justity-content:space-around;--------平分在子项两边

    justity-content:space-evenly;---------均匀排列

    justity-content:center;    ---------------居中对齐

侧轴对齐——aligin-content

align-content:center;

align-content:space-around;

align-content:space-evenly;

align-content:space-between;    

                        -------与主轴用法一样

改变侧轴单行:

     align-items:center-----居中,----不允许换行,子元素可能会被挤压

允许换行:flex-wrap:wrap;

     flex:20px;------占剩余空间的多少

排序:

    order:值越小,排列越靠前,未设置时默认为0,可以负值:order:-1;

、去除标签默认外边距

默认外边距:

      Body默认有8px的外边距

            去除默认外边距:margin:0;

无序列表默认:{

                        margin:16px;

                        padding:40px;}

       去除则内外边距值取0

用通配符选择器:

*{

margin:0;

padding:0;

}   -------用通配符去除所有默认样式

三、字体

使用的是存在的字体

添加字体——font-family

@font-face{

       font-family:gouxin;

       src:url(./);

               ----------@font-face指添加定义的字体

                  ----------gouxin指自定义的字体名字

使用字体:

div{

     font-family:gouxin;

}

四、渐变

颜色渐变——background-image

div{

    background-image:linear-gradient(to right,red,pink,black);-----------连续渐变,to+方向,后面加颜色

    background-image:repeating-linear-gradient(45deg,red,pink)---------重复线性渐变

background-image:radial-gradient(red,pink,blue)---------镜像渐变(环形)

  }

五、CSS的继承性

                例如:  给父元素设置颜色,子元素也能继承到整个颜色

属性分可继承性和不可继承性:

      1、会继承的属性:字体属性、文本属性(ver……除外)、文字颜色……

      2、不会继承的属性:边框、背景、内外边框、宽高……

六、浮动

文字环绕

最早用来:文字环绕图片

img {

       float:left;

} ------向左浮动,图片在左边,文字从图片右边包围

浮动后的元素脱离文档流--------文档流是文档中可显示对象在排列时所占用的位置

元素浮动特点:

1、脱离文档流

2、无论元素类型,只要浮动,就按浮动的规则来:默认宽高都是被内容撑开的(尽可能小),而且可以设置宽高

3、和其他元素公用一行(一个在上面飘着,一个沉在下面

4、不存在外边距塌陷

5、没有行内块元素的空白问题

也可以达到使块元素一行排列的效果(按浮动的顺序)

元素浮动后的影响:

1、对父元素的影响:不能撑起父元素的高度,导致父元素高度塌陷,但父元素的宽度依然束缚浮动的元素。

2、对兄弟元素的影响:后面的兄弟元素会占据浮动元素之前的位置,在浮动元素的下面,对前面的兄弟元素没有影响。

解决影响办法:

1、 clear:left/right/both--------清除浮动影响,接近完美的解决办法-------消除左浮动的影响,不能为行内元素,自身不能浮动

2、额外标签法:

p{

   clear:both;

}  ------清除浮动,在父元素里不被浮动的元素影响

七、盒子阴影

通过:

box-shadow:10px 10px 10px;-----第一个是水平偏移阴影(x轴的偏移量)、第二个代表y轴的偏移量、第三个代表模糊半径。

默认外阴影

内阴影设置:

box-shadow:inset 10px 10px 10px;

文字阴影:

P {

  text-shadow:10px 10px 2px;

 }

八、多列显示

把一段文字分为竖着几部分从左到右显示

P {

  column-count:3;-------划分的列数,以几列形式显示

  column-gap:30px;-------列与列之间的间距

}

媒体查询

视觉宽度screen,视觉窗口大于小于多少的时候是什么样式,更大于的时候又是什么样式

只能设置颜色字体大小等,不能设置宽高

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值