布局一直是页面制作很重要的部分,有个良好的布局不仅在页面上呈现很好的效果,还对后续功能扩展有重要的作用。本文主要讨论一下几种布局:

水平居中布局

垂直居中布局

多列布局

自适应布局

stracky-footer布局

九宫格布局

水平居中布局

水平居中的页面布局中最为常见的一种布局形式,多出现于标题,以及内容区域的组织形式。

(1)文字水平居中 text-align: center

设置容器盒子text-align: center;

(2)文本/盒子水平居中 table

display:table; margin:0 auto;

(3)盒子水平居中 margin

子容器定宽+margin: 0 auto;

(4)绝对定位

 position: absolute;
left: 50%;
transform: translate(-50%);

(5) flex+justify-content

 display: flex;
justify-content: center;

(6)父flex + 子margin: 0 auto;

垂直居中布局

(1)单行文字垂直居中

设置容器盒子 text-align: center; line-height: 容器的高度

(2)文本+盒子在父容器中垂直居中 table

父容器:

display: table-cell;
vertical-align: middle;

(3)display:inline-block;+vertical-align:middle;+line-height

在使用vertical-align的时候,由于对齐的基线是用行高的基线作为标记,故需要设置line-height或设置display:table-cell;

注意:只有一个元素属于inline或是inline-block(table-cell也可以理解为inline-block水平)水平,其身上的vertical-align属性才会起作用。

(4)绝对定位

子容器:

position: relative;
top: 50%;
transform: translate(0,-50%);
background-color: red;

(5)flex布局

.parent{display: flex;
align-items: center;}
.child{background-color: blue;}

多列布局

(1) 左侧等宽,右侧自适应。

适用于定宽的一侧常为导航,自适应的一侧为内容的布局

float+margin

左:width: 200px; float: left;

右:width: 100%; margin-left: 200px;

 float + overflow

左:width: 200px; float: left;

右:overflow: hidden;

 flex

右:flex: 1;

table

父:display:table;table-layout:fixed;width:100%;

左,右: display:table-cell

(2)      两列定宽,一列自适应

float+margin

左,中间:width: 200px; float: left;

右:margin-left: 左宽+右宽;

float + overflow

左,中间:width: 200px; float: left;

右:overflow: hidden;

flex

右:flex: 1;

table

父:display:table; table-layout:fixed; width:100%;

子:display: table-cell;

(3)      两侧定宽,中间自适应

float + margin负值

左、中、右左浮,

中间需要wrapper,内部margin-left:左宽;margin-right:右宽;

左,margin-right: -100%;

右,margin-left: -右宽;

center-wrapper{
width: 100%;
float: left;
}
. center{
margin: 0 200px; }
.left,. right{
width: 200px;
float: left;
}
.eight-left{
margin-right: -100%;
}
.eight-right{
margin-left: -200px;
}

flex

中间: flex: 1;

(4)      一列不定宽,一列自适应

flex

自适应部分:flex:1

float+overflow

左: float: left

右:over

(5)      多列等宽布局

flex

父:display: flex

子: flex:1

自适应布局

meta标签的实用

设置布局宽度等于设备宽度,布局viewport等于度量viewport

<meta name="viewport" content="width=device-width,initial-scale=1">

媒体查询

HTML 4和CSS 2目前支持为不同的媒体类型设定专有的样式表, 比如, 一个页面在屏幕上显示时使用无衬线字体,

而在打印时则使用衬线字体, screen 和 print 是两种已定义的媒体类型, 媒体查询让样式表有更强的针对性,

扩展了媒体类型的功能;媒体查询由媒体类型和一个或多个检测媒体特性的条件表达式组成,

媒体查询中可用于检测的媒体特性有width、height和color(等), 使用媒体查询, 可以在不改变页面内容的情况下,

为特定的一些输出设备定制显示效果。

语法

@media screen and (max-width:960px){....}

<link rel="stylesheet" media="screen and (max-width:960px)" href='xxx.css' />

stracky-footer布局

(1) padding-bottom+margin负值

内容盒子padding-bottom:footer高

Footer组件margin:-footer高  auto ;

.content-wrapper{
width: 100%;
height: 400px;
padding-bottom: 50px;
background-color: #f4e6e8;
}
.content{
background-color: pink;
width: 100%;
height:35%;
}
.footer{
position: relative;
width: 50px;
height: 50px;
border-radius: 25px;
background-color: #c0f9ff;
margin:-50px auto ;
text-align: center;
line-height: 50px;
}

(2)

flex

.wrapper{
display: flex;
flex-flow: column;
}
.content-wrapper{
flex:;
}
.footer{
width: 50px;
height: 50px;
border-radius: 25px;
background-color: #c0f9ff;
margin: 0 auto;
text-align: center;
line-height: 50px;
}

九宫格布局

(1)  flex

.flex-parent{display: flex;flex-direction: column;  }
.flex-row{ display: flex;height: 33.3%;}
.flex-row > .item{flex:;}

(2) table

.table-parent{ display: table; table-layout: fixed;    }
.table-row{display: table-row;}
.table-row > .item{display: table-cell; }

css之布局的更多相关文章

  1. css双飞翼布局

     双飞翼布局是一种比较灵活的布局,始于淘宝UED,玉伯提出的,他着重介绍的是双飞翼栅格布局. 三列布局为"双飞燕"布局,可以把三栏比作一只鸟,main部分相当是于鸟的身体,而lef ...

  2. 奇妙的CSS之布局与定位

    前言 关于布局与定位是Web前端开发里非常基础而又重要的部分.介绍相关知识的文章,很容易就可以找到.虽然,这方面的知识点不是很多,但我们如果不弄清楚,在运用时候往往会出现预料之外的布局,这些“意外”有 ...

  3. 原生 CSS 网格布局学习笔记

    下是来自Oliver Williams的帖子. Oliver已经学习了相当长时间的原生CSS网格,可以说是在CSS网格方面有一定的发言权.在这篇文章中,他将以非同寻常的思路分析自己的CSS网格布局学习 ...

  4. CSS网页布局全精通

    在本文中将使用四种常见的做法,结合CSS于结构化标记语法制作两栏布局.很快地就会发现,不用嵌套表格,间隔用的GIF也能做出分栏版面布局. 相关文章:CSS网页布局开发小技巧24则 稍后在"技 ...

  5. 【转】一个DIV+CSS代码布局的简单导航条

    原文地址:http://www.divcss5.com/shili/s731.shtml 简单的DIV CSS代码布局实现导航条 一个蓝色主题的导航条布局案例,本CSS小实例,采用DIV CSS实现. ...

  6. 用css进行布局

     用css进行布局 一,开始布局的注意事项 1.作为最佳实践,应把html(内容)和css(显示)分离: 2.网站设计主要有两大类型:固定宽度(基于像素)和响应式(也称流式,使用百分数定义) 二,构建 ...

  7. CSS网页布局错位:CSS宽度计算

    为什么计算宽度计算网页像素宽度是为了CSS网页布局整齐与兼容.常见的我们布局左右结构网页或使用padding.margin布局的时候将计算整页宽度,如果不计算无论是宽度过大过小就会出现错位问题. 怎么 ...

  8. html/css 盒子布局 Margin 、Padding 、border 以及 清除浮动的知识 (学习HTML过程中的小记录)

    html/css  盒子布局 Margin .Padding .border 以及 清除浮动的知识 (学习HTML过程中的小记录) 作者:王可利(Star·星星) width     是"宽 ...

  9. CSS+DIV布局初练—DIV元素必须成对出现?

    一直做C/S开发的工作,但是很少做和布局相关的工作,往往都是同事将界面设计好,自己填写代码而已,对于B/S的工作,做过,但是很少没有像C/S这么多,界面布局的话,更无从谈起. 日子就这么过,一天一个样 ...

  10. 总结与学习DIV+CSS网页布局技巧

    以前用表格布局时设置网页居中非常方便,把表格对齐方式设置为居中就行了,就这么简单,现在呢,用DIV+CSS样式表控制,好像不是那么容易了,其实也很简单,只不过方式不同而已. <style> ...

随机推荐

  1. 显示HTML的版权符号

    最近有小伙伴问©符号在页面显示很小,于是去查看他的源代码 他在HTML代码里对应输入© 那么在页面里应该会正常显示版权符号,可是为什么会出现这种问题呢? 首先我想到页面在设计的时候,用的字体是宋体,就 ...

  2. 《程序员代码面试指南》第二章 链表问题 将单链表每K个节点之间逆序

    样例 链表1-2-3-4-5-6-7-8-9-10 K=3 ,结果 3-2-1-6-5-4-9-8-7-10 java代码 /** * @Description:将单链表每K个节点之间逆序 * @Au ...

  3. Python核心编程课后习题-第六章

    1. 字符串, string模块中是否有一种字符串方法或者函数可以帮我鉴定一下一个字符串是否是另一个大字符串的一部分? str1 = 'abcdefghijklmnopqrstuv' print st ...

  4. 剑指offer之 数组中出现次数超过一半的数字

    public class Solution { public int MoreThanHalfNum_Solution(int [] array) { if(array==null||array.le ...

  5. 算法(Algorithms)第4版 练习 1.5.2

    0 1 2 3 4 5 6 7 8 9 10 components 9 0 0 1 2 3 4 5 6 7 8 9 components 3 4 0 1 2 4 5 6 7 8 0 8 compone ...

  6. 大话设计模式--解释器模式 interpreter -- C++实现实例

    1. 解释器模式: 给定一个语言,定义它的文法的一种表示 并 定义一个解释器,这个解释器使用该表示文法 来解释语言中的句子. 如果一种特定类型的问题发生的频率很高,那么可能就值得将该问题的各个实例表述 ...

  7. Oracle的权限管理

    --授予系统权限语法 grant system_privilege | all privileges --可以设置select any dictionary权限之外的索引系统权限 to {user i ...

  8. Neutron Messaging Callback System

    callback system 用在进程内部通信,Messaging Callback System是给进程间通信.为了agent不通过RPC就能得到resource的变化. 目前用在: QoS po ...

  9. java:stack栈: Stack 类表示后进先出(LIFO)的对象堆栈

    //Stack 类表示后进先出(LIFO)的对象堆栈 //它提供了通常的 push 和 pop 操作,以及取栈顶点的 peek 方法.测试堆栈是否为空的 empty 方法.在堆栈中查找项并确定到栈顶距 ...

  10. GridView内容详解(转载)

    GridView内容详解(转载) GridView是ASP.NET界面开发中的一个重要的控件,对GridView使用的熟练程度直接影响软件开发的进度及功能的实现.(车延禄)GridView的主要新特性 ...