css布局笔记(一)
布局方式
- 一列布局
通常固定宽高,用margin:0 auto;居中显示 - 两列布局
说起两列布局,最常见的就是使用float来实现。float浮动布局的缺点是浮动后会造成文本环绕等效果,以及需要及时清除浮动。设置左左浮动,或设置左右浮动(这是需要确定父级元素的宽度)。如何父级元素没有设置高度,则需要设置overflow:hidden来清除浮动产生的影响 。对于自己相邻元素清除浮动产生的影响用:clear:both;。 - 三列布局
两列定宽中间自适应:首先设置父级元素的宽度,可以左左右设置浮动。然后中间设置margin调整间距。 也可以都设置成左浮动,设置margin,调整间距。同样注意清除浮动的影响!或者为父级元素设置relative属性,再为子元素设置absolute属性,再分别定位,调间距。 - 混合布局
在一列布局的基础上,保留top和foot部分,将中间的main部分改造成两列或三列布局,小的模块可以再逐级同理划分。
对齐方式
水平居中
- 行内元素的水平居中
如果被设置元素为文本、图片等行内元素时,在父元素中设置text-align:center实现行内水平居中,将子元素的display设置为inline-block,是子元素变成行内元素 - 块状元素的水平居中(定宽)
当被设置为定宽块级元素时,设置左右margin值为auto来实现居中。 - 块级元素的水平居中(不定宽)
可以直接给不定宽的块级元素设置text-align:center来实现,也可以给父元素设置text-align:center来实现居中效果。
当不定宽块级元素的宽度不要占一行时,可以设置display为inlin或inline-block来实现。
- 行内元素的水平居中
垂直居中
父元素是盒子容器且高度已设定- 子元素是行内元素,高度由其内容撑开
设定父元素的line-height为其高度来设置垂直居中 - 子元素是块级元素但是子元素高度没有设定
无法用margin,padding来设置,通过给父元素设置display:table-cell;verticle-align:middle来解决。 - 子元素是块级元素且高度已设定
计算子元素的margin-top或margin-bottom,计算方法为(父元素高度-子元素高度)/2。
- 子元素是行内元素,高度由其内容撑开
水平垂直居中
- 水平对齐+行高
text-align+line-height实现单行文本水平垂直居中 - 水平+垂直对齐
- text-align+verticle-align
在父元素设置text-align和verticle-align,并将父元素设置为table-cell元素,子元素设置为inline-block元素。 - 若子元素是图像,可不使用table-cell,而是其用行高代替高度,且字体大小设置为0。子元素本设置为verticle-align:middle。
<style>
.parent{
text-align: center;
line-height: 100px;
font-size: 0;
}
.child{
vertical-align: middle;
}
</style> <div class="parent" style="background-color: gray; width:200px; ">
<img class="child" src="http://sandbox.runjs.cn/uploads/rs/26/ddzmgynp/img1.gif" width="50%" alt="test">
</div>
- text-align+verticle-align
- 水平对齐+行高
相对+绝对定位
使用absolute,利用绝对定位元素的盒模型特性,在偏移值为确定值的基础上,设置margin:auto<style>
.parent{
position: relative;
}
.child{
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
height: 50px;
width: 80px;
margin: auto;
}
</style> <div class="parent" style="background-color: lightgray; width:200px; height:100px; ">
<div class="child" style="background-color: lightblue;">测试文字</div>
</div>
css布局笔记(一)的更多相关文章
- “学习CSS布局” 笔记
学习网址:http://zh.learnlayout.com/no-layout.html 本文仅为学习笔记,内容非原创. position 默认值:static 没有添加额外属性的relative和 ...
- css布局笔记(三)圣杯布局,双飞翼布局
圣杯布局和双飞翼布局都是三列布局,两边定宽,中间自适应布局,中间栏要在放在文档流前面以优先渲染. 圣杯布局如下 <!-- 圣杯布局 --> <!DOCTYPE html> &l ...
- css布局笔记(二)Flex
flex Flex是"Flexible Box"的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性. 任何一个容器都可指定为Flex布局. .box{di ...
- css布局笔记
1.display block块级元素(div.p等) inline 行内元素(a.span等) 常见的例子:把li修改成inline ,制作成水平菜单 2.max-width 来适应不同浏览器窗 ...
- CSS布局基础
(初级)css布局 一.单列布局1.基础知识块级元素 div p ul li dl dt 行级元素 img span input strong同一行显示.无换行2.盒子模型盒子模型 (边框border ...
- 《深入理解bootstrap》读书笔记:第三章 CSS布局
一. 概述一下理念 bootstrap基于H5开发.提倡移动先行(媒询声明是必须的),对浏览器支持面不是很广. 响应式图片:max-width:100% height:auto; 可以加上:.img- ...
- CSS 小结笔记之解决flex布局边框对不齐
在使用flex 进行伸缩布局的时候,经常会给子盒子设置边框,这时经常会出现上下边框对不齐的情况.本篇文章来探讨并解决这个问题. 具体出现的问题如下图所示 具体代码如下 <!DOCTYPE htm ...
- HTML+CSS学习笔记 (12) - CSS布局模型
标签:HTML+CSS css布局模型 清楚了CSS 盒模型的基本概念. 盒模型类型, 我们就可以深入探讨网页布局的基本模型了.布局模型与盒模型一样都是 CSS 最基本. 最核心的概念. 但布局模型是 ...
- HTML&CSS精选笔记_布局与兼容性
布局与兼容性 CSS布局 版心和布局流程 为什么要应用布局? 阅读报纸时容易发现,虽然报纸中的内容很多,但是经过合理地排版,版面依然清晰.易读.同样,在制作网页时,要想使页面结构清晰.有条理,也需要对 ...
随机推荐
- C#获取路径问题
由于在写控制台的时候,不能获取到绝对的路径.(下面为学习内容) System.IO.Path类中有一些获取路径的方法,可以在控制台程序或者WinForm中根据相对路径来获取绝对路径 获取web物理路径 ...
- Linux环境变量及其设置
简介 环境变量是在操作系统中一个具有特定名字的对象,它包含了一个或多个应用程序将使用到的信息.Linux是一个多用户的操作系统,每个用户登录系统时都会有一个专用的运行环境,通常情况下每个用户的默认的环 ...
- [转]MBTiles 离线地图演示 - 基于 Google Maps JavaScript API v3 + SQLite
MBTiles 是一种地图瓦片存储的数据规范,它使用SQLite数据库,可大大提高海量地图瓦片的读取速度,比通过瓦片文件方式的读取要快很多,适用于Android.IPhone等智能手机的离线地图存储. ...
- PHP扩展功能 ---- 伪静态
一.入门三部曲 1.什么是伪静态? 改写URL,以静态的url形式访问页面,但其实是用PHP一类的动态脚本来处理的. 2.为什么要用伪静态? 需要动态获取数据,但是又希望能够对搜索引擎友好. 3.怎么 ...
- SQL SERVER或oracl如何判断删除列
ORACLE: BEGIN EXECUTE IMMEDIATE 'DROP TABLE CUX_PO_VENDORS';EXCEPTION WHEN OTHERS THEN NULL;END ...
- 我的QT5学习之路(四)——信号槽
一.前言 前面说了Qt最基本的实例创建.控件以及工具集的介绍,相当于对于Qt有了一个初次的认识,这次我们开始认识Qt信号通信的重点之一——信号槽. 二.信号槽 信号槽是 Qt 框架引以为豪的机制之一. ...
- [微信小程序] js变量名称写活
function create_variable(num){ var name = "test_"+num; //生成函数名 window[name] = 100; window[ ...
- Sql Server 部署SSIS包完成远程数据传输
本篇介绍如何使用SSIS和作业完成自动更新目标数据任务. ** 温馨提示:如需转载本文,请注明内容出处.** 本文链接:https://www.cnblogs.com/grom/p/9018978.h ...
- Java中 方法的多态 简析图
代码如下: public class Client{ public static void main(String[] args){ Person p = new Person() ...
- parseInt("08")或parseInt("09")转换返回0的解决办法
在javascript中使用parseInt()函数转换成整数时会遇到以下这种情况: 使用parseInt()转换'01'~'07'时可以转换成整数1~7,而转换'08'和'09'时,就会出现转换结果 ...