CSS布局相关

盒子模型+浮动+定位

float:left;
把几个浮动的元素放到一起,如果有空间的话,它们将彼此相邻。
浮动元素脱离正常流,布局时后面元素当它不存在(文字还是当它存在,环绕其身边),但仍然在dom树上。

包裹性:
    float属性会改变元素display属性最终的计算值。
破坏性:
    破坏性是指元素浮动后可能导致父元素高度塌陷
    因为浮动元素被从文档正常流中移除了,父元素当然还处在正常流中,所以父元素不能被浮动元素撑大。

清除浮动:

清除浮动的本质:是清除浮动元素脱离标准流造成的影响
清除浮动的策略:闭合浮动、只让浮动在父盒子内部影响、不影响父盒子外面的其他盒子

1.额外标签法:也被称之为隔墙法,W3C推荐用法
    clear:both
        //优点:通俗易懂、书写方便   //缺点:添加许多无意义的标签,结构化差
2.父级元素添加overFlow属性
    overflow:hidden/auto/scroll
        //优点:代码简洁、缺点:无法显示出溢出的部分(会把盒子之外露出的部分切掉)

3.父级添加after伪元素
    .clearfix:after{
        content:'';
        display:block;
        height:0;
        clear:both;
        visibility:hidden;
    }
    .clearfix{//IE6、7专有
        *zoom:1;
    }
    //优点:没有增加标签、结构简单  //缺点:照顾低版本浏览器  代表网站(百度、淘宝、网易等)
4.父级添加双伪元素
    .clearfix:before,.clearfix:after{
        content:'';
        dispalytable;
    }
    .clearfix:after{
        clear:both;
    }
    .clearfix{
        *zoom:1;
    }
    //优点:代码更简介  缺点:照顾低版本浏览器  代表网站(小米、腾讯等)

 定位

定位:将盒子定在某一个位置、定位也是摆放盒子、按照定位的方式移动盒子
定位=定位模式+边偏移
定位模式:指定一个元素在文档中的定位方式
边偏移:决定了该元素的最终位置
position:
    static:静态定位
    relative:相对定位
    absolute:绝对定位
    fixed:固定定位
    sticky:粘性定位

静态定位:
    默认定位方式、无定位的意思
    没有脱离标准流、无边偏移
相对定位:
    相对定位是元素在移动位置的时候、是相对它原来的位置来说的(自恋型)
    1.总是以自己原来的位置移动的
    2.原来的标准流位置继续占用、后面的盒子任然以标准流的方式对待(不脱标)
绝对定位:
    绝对定位是元素在移动位置时,是相对于它祖先元素的(拼爹型)
    1.如果没有祖先元素,则以浏览器定位为主
    2.如果祖先有定位(相对、绝对、固定定位),则以最近一级的有定位的元素为参考点移动位置
    3.绝对定位不在占用原先的位置(脱标)
固定定位:
    固定定位是元素固定于浏览器可视区的位置、主要使用场景:可以在浏览器页面滚动时元素的位置不会改变
    1.以浏览器的可视化窗口为参照点移动元素(跟父元素没有关系、不随滚动条滚动)
    2.固定定位不在占有原先的位置(脱标的、可以看做是一种特殊的绝对定位)
粘性定位:
    被认为是相对定位和固定定位的混合,Sticky粘性的
    1.以浏览器的可视窗口为参照点移动元素(固定定位特点)
    2.粘性定位占有原先的位置(相对定位特点)
    3.必须添加 top 、left 、right 、bottom 的其中一个
子绝父相:
    1.子级绝对定位、不会占用位置、可以放到父盒子里面的任何一个地方、不会影响其他的兄弟盒子
    2.父盒子需要加定位限制子盒子在父盒子内显示
    3.父盒子布局时、需要占有位置、因此父盒子只能是相对定位

 精灵图sprites:

background-position 
一般情况下精灵图都是负值。(网页中的坐标、X轴右边走是正值、左边走时负值、Y轴同理)
background:url(XXX.jpg) no-repeat x轴 y轴;
或者
background-position x轴 y轴;
缺点:
    1.图片文件比较大
    2.图片本身的放大和缩小会失真
    3.一旦图片制作完毕想要更换非常复杂

字体图标:

轻量级:一个图标字体要比一系列的图像要小、一旦字体加载了、图标就会马上渲染出来、减少服务器的请求
灵活性:本质其实是文字、可以随便的改变颜色、产生阴影、透明效果、旋转等
兼容性:几乎支持所有浏览器
1.引入fonts文件夹
2.字体声明
3.使用
追加字体图标
selectionjson从新上传

移动端布局

1.单独制作移动端页面

流式布局(百分比布局)
flex弹性布局
less+rem+媒体查询布局
混合布局

2.响应式页面兼容布局

媒体查询
bootstrap

Flex

flex是flexble Box 的缩写,意为弹性布局、用来为盒状模型提供最大的灵活性、任何一个容器都可以指定为flex布局
当父元素设为flex布局后、子元素的float、clear和vertical-align属性将失效
伸缩布局=弹性布局=伸缩盒布局=弹性盒布局=flex布局
通过给父盒子添加flex属性、来控制子盒子的位置和排列方式
常见父项属性
flex-direction 设置主轴的方向
justify-content:设置主轴上的子元素排列方式
flex-wrap:设置子元素是否换行
align-content:设置侧轴上的子元素的排列方式(多行)
align-items:设置侧轴上的子元素排列方式(单行)
flex-flow:复合属性,相当于同时设置了flex-direction和flex-wrap

rem单位:

1.em相对于父元素的字体大小来说的、
2.rem(root em)是相对单位、类似于em、em是父元素字体大小
3.不同的是rem的基准是相对于html元素的字体大小
4.比如,根元素设置font-size=12px;非根元素这只width:2rem,则转换成px表示24px;

 媒体查询

媒体查询 Media Query
使用@media查询,可以针对不同的媒体类型定义不同样式
@Media可以针对不同的屏幕尺寸设置不同的样式
当你重置浏览器大小的过程中、页面也会根据浏览器的宽度和高度重新渲染页面

引入资源就是针对不同屏幕尺寸、调用不同的css文件

 

Less

css弊端
1.不方便维护、冗余度很高
2.CSS没有很好的计算能力

Less是一门CSS扩展语言、也成为CSS预处理器、是一门新的语言、在CSS的语法基础上、引入了变量、mixin(混入)、运算以及函数等功能
常见css预处理器:sass、less、stylus


变量:
    变量是指没有固定的值、可以改变、
    @变量名:值
    #变量命名规范
    1.必须有@为前缀  2.不能包含特殊字符    3.不能以数字开头    4.大小写敏感

嵌套:
    如果遇到(交集|伪类|伪元素选择器)
    1.内层选择器的前面没有&符号、则它被解析成父选择器的后代
    2.如果有&符号、它就被解析为父元素自身或父元素的伪类
运算:
    运算符中间有个空格隔开1px + 5
    对于两个不同的单位之间运算、运算结果的值取第一个值的单位
    如果两个值之间只有一个值有单位、则运算结果就取该单位
    元素大小取值方法:
        最后的公式:页面元素的rem值=页面元素值(px)/(屏幕宽度/划分的份数)
        屏幕宽度/划分的份数 就是html font-size的大小
        或者页面的元素rem值= 页面元素值(px)/html font-size字体大小

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值