一、宽度自适应

语法:width:100%;

注: a)块状元素的默认宽度为100%

   b) 当给元素设置宽度为100%时,继承父元素的宽度

   c) 通常使用宽度自适应实现通栏效果


二、高度自适应

语法:height:auto;(等同于不给元素设置高度)


三、最小高度,最大高度,最小宽度,最大宽度

1.最小高度

语法: min-height:数值+单位;

注:IE6不识别min-height属性,解决方案如下:

方案一: min-height:100px; _height:100px;

方案二: min-height:100px; height:auto!important; height:100px;

2.最大高度

语法: max-height:数值+单位;

3.最小宽度

语法:min-width:数值+单位;

注:当给块元素设置min-width属性时,需要将块元素转换为display:inline-block;

4.最大宽度

语法:max-width:数值+单位;

注:以上四个属性在IE6及以下版本浏览器中不识别


四、高度塌陷问题(常见的几种清除浮动的方法)

描述:当父元素高度自适应,子元素设置了float,导致父元素高度为0,称为高度塌陷问题

解决方案如下:

1.方案一

给父元素一个固定的高度

缺点:不能实现高度自适应,不够灵活(不推荐使用)

2.方案二

给父元素设置overflow:hidden;

优点:简单,父元素可以高度自适应

缺点:当子元素有定位属性时,由于父元素设置了overflow:hidden;父元素容器之外的部分会被隐藏

3.方案三

在子元素的末尾添加一个空div,并设置样式:

.clear{clear:both;height:0; overflow:hidden;}

注:a)此div只为解决高度塌陷问题,不需要在浏览器中显示,所以设置height:0;

b)IE6不能识别小于10px的容器,所以要加overflow:hidden;来兼容IE6

优点:所有浏览器都支持

缺点:在网页中添加无意义的一个div,会造成代码冗余

4.方案四

通过伪元素的方式解决高度塌陷问题(万能清除浮动法)

父元素:after{
content:".";
display:block;
height:0;
overflow:hidden;
clear:both;
visibility:hidden;
}

注:伪元素的语法

选择器:before{content:"";} 在子元素之前去添加一个伪元素

选择器:after{content:"";} 在子元素之后去添加一个伪元素

伪元素是内联元素


五、元素隐藏不可见的两种方式(display:none;和visibility:hidden的区别)

1.display:none;

元素被隐藏,空间不保留;(看不见,摸不着)

2.visibility:hidden;

元素被隐藏,空间保留;(看不见,摸得着)

注:display:none;和overflow:hidden;的区别

display:none让元素完全隐藏不显示,overflow:hidden;是让元素溢出部分隐藏不可见,没有溢出部分正常显示


六、窗口高度自适应

首先,要设置窗口的高度自适应

html,body{height:100%;}

然后,给元素设置

div{height:100%;}

注:窗口高度自适应适用于屏幕窗口没有内容body为0或内容不满一屏的情况下使用


七、内联元素水平居中设置

如果被设置水平居中的元素是文本,图片等内联元素时,通过给父元素设置text-align:center;实现


八、定宽块状元素水平居中设置

满足定宽,块状元素两个条件的元素,将左右margin设置为auto即可实现元素在水平方向上居中显示

注:a)当给元素设置了float后,左右为auto将会失效

  b) 当给元素设置了absolute和fixed后,左右auto将会失效


九、不定宽块状元素水平居中设置

1.给父元素设置以下样式

a)给父元素设置display:table; 将元素转换为表格形式

b) 给父元素设置左右margin为auto

2.给父元素设置:text-align:center;

给子元素设置: display:inline-block;


十、元素在屏幕窗口水平垂直都居中

1.定宽高元素在屏幕窗口水平垂直都居中

元素{

width:value;
height:value;
position:fixed;
left:50%;
top:50%;
margin-left:-width/2+"px";
margin-top:-height/2+"px";
}
2.不定宽高元素在屏幕窗口水平垂直都居中

元素{

position:fixed;
left:0;
right:0;
top:0;
bottom:0;
margin:auto;
}


十一、不定宽高子元素在父元素中水平垂直都居中

1.方案一(高度须给定,否则垂直居中高度拉伸充满父元素)

父元素{position:relative;}

子元素{

position:absolute;
left:0;
right:0;
top:0;
bottom:0;
margin:auto;
}
2.方案二

父元素{

display:table-cell;
text-align:center;
vertical-align:middle;
}

注:display:table-cell;将元素转换为表格单元格形式

  3.子元素转换成行内块状元素宽高自适应,子元素同级设置高度充满父元素的参照物 且行内块状元素。同级子元素通过设置vertical-align:middle;垂直居中。兼容IE8及更高版本。

从零开始学习前端开发 — 7、CSS宽高自适应的更多相关文章

  1. 李洪强和你一起学习前端之(6)css行高,盒模型,外边距

    李洪强和你一起学习前端之(6)css行高,盒模型,外边距 复习昨天的知识 1.1css书写位置: 内嵌式写法 外联式写法 <link href = "1.css" rel = ...

  2. 从零开始学习前端开发 — 3、CSS盒模型

    ★  css盒模型是css的基石,每个html标签都可以看作是一个盒模型. css盒模型是由内容(content),补白或填充(padding),边框(border),外边距(margin)四部分组成 ...

  3. 从零开始学习前端开发 — 14、CSS3变形基础

    一.css3变形: transform:rotate(旋转)|scale(缩放)|skew(倾斜)|translate(位移); 注:当多种变形方式综合在一起时,用空格隔开 1.旋转 a) rotat ...

  4. 从零开始学习前端开发 — 12、CSS3弹性布局

    一.分栏布局 1.设置栏数column-count:数值; 2.设置每栏的宽度column-width:数值+单位; 注:当设置了column-width,column-count会失效,二者设置其一 ...

  5. css 宽高自适应的div 元素 如何居中 垂直居中

    在我们 编写css 样式的时候经常会遇见一个问题 那就是一个 宽高未知的元素 要让他 垂直居中如何实现这个呢 下面是我常用的两种方法 上代码 下面的是 结构代码 <div class=" ...

  6. 从零开始学习前端开发 — 2、CSS基础

    一.CSS简介  1.CSS是什么 CSS是Cascading Style Sheets的简称,中文称为层叠样式表.特点:实现了表现与结构相分离 2.css基础语法 css是由选择符和声明两大部分组成 ...

  7. 从零开始学习前端开发 — 9、标签嵌套规则及CSS常用样式覆盖

    1. 块级元素可以包含内联元素或某些块级元素,但内联元素却不能包含块级元素,它只能包含其它的内联元素: <div><h1></h1><p></p& ...

  8. 从零开始学习前端开发 — 6、CSS布局模型

    一.css布局模型 1.流动模型(Flow) 元素在不设置css样式时的布局模型,是块元素就独占一行,是内联元素就在一行逐个进行显示 2.浮动模型(Float) 使用float属性来进行网页布局,给元 ...

  9. 从零开始学习前端开发 — 11、CSS3选择器

    一.基本选择器 1.* 通配符(通用选择器) 2.id选择器 3.class选择器(类选择器) 4.标签选择器(元素选择符) 5.群组选择器 (选择符1,选择符2{...}) 二.层次选择器(关系选择 ...

随机推荐

  1. Linux并发连接上百万的配置

    To support over 500k users, you *need* - A bits hardware/kernel (AMD64, Opterons) - At least 8GB of ...

  2. Java 浅析Thread.join()

    概要 本文分为三部分对 Thread.join() 进行分析: 1. join() 的示例和作用 2. join() 源码分析 3. 对网上其他分析 join() 的文章提出疑问 1. join() ...

  3. TCP 建立连接:三次握手

    转自:http://www.cnblogs.com/winner-0715/p/5032661.html 感谢! TCP 建立连接过程 TCP是因特网中的传输层协议,使用三次握手协议建立连接,下面是T ...

  4. phpstorm+wamp+xdebug配置php调试环境

    本篇文章主要是:教大家如果搭建一套phpstorm+wamp+xdebug调试php的环境现在大多数的程序员使用的调试方式一般都是echo, var_dump, file_put_contents等其 ...

  5. angular4.0配置同时使用localhost和本机IP访问项目

    之前写过<angular4.0配置本机IP访问项目>的文章,今天再次更新一个,谢谢大家的指正. 今天的目的是:使用本机IP地址,或者localhost都可以访问项目. 第一步:找到此文件& ...

  6. JDK中AbstractQueuedSynchronizer应用解析

    这个类首先是一个抽象类,定义了一个模板,很多java同步相关的类(ReetrantLock.Semaphore.CountDownLatch等)都是基于AbstractQueuedSynchroniz ...

  7. 第五章:Python基础の生成器、迭代器、序列化和虚拟环境的应用

    本课主题 生成器介紹和操作实战 迭代器介紹和操作实战 序例化和反序例化 Json 和 Pickle 操作实战 字符串格式化的应用 创建虚拟环境实战 本周作业 生成器介紹和操作实战 什么是生成器,生成器 ...

  8. XCode8中的sizeClass设置

    xcode8出来很久了,xcode9都要出来了,项目中由于一直没遇到用到适配屏幕的情况,所以一直也就忽略了这个知识点.今天忽然想起来,就抱着试一试的态度打开了xcode,我去~就我现在了解而言,屏幕大 ...

  9. django 项目中遇到的问题(持续更新中)

    问题1:in include 'provide the namespace argument to include() instead 描述:在最外层的urls.py 添加项目的urls后报错,错误显 ...

  10. 一键下载你的youtube视频

    很多人喜欢逛油管看视频,自然就会有一些喜欢的收藏集或者视频作者,有时候想要下载下来保存在本地播放,这样的话就不用每次FQ,毕竟有些代理的速度并不是很理想(如果你的代理速度炒鸡快的话,请忽略这篇文章). ...