CSS布局方案

居中布局

水平居中

1)使用inline-block+text-align

原理:先将子框由块级元素改变为行内块元素,再通过设置行内块元素居中以达到水平居中。

用法:对子框设置display:inline-block,对父框设置text-align:center。

<div class="parent">
    <div class="child">DEMO</div>
</div>
.child{
    display: inline-block;
}
.parent{
    text-align: center;
}

缺点:child里的文字也会水平居中,可以在.child添加text-align:left;还原

2)使用absolute+transform

<div class="parent">
    <div class="child">DEMO</div>
</div>
.child{
    position: relative;
}
.parent{
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
}

3)使用flex+justify-content

原理:通过CSS3中的布局利器flex中的justify-content属性来达到水平居中。

用法:先将父框设置为display:flex,再设置justify-content:center。

<div class="parent">
    <div class="child">DEMO</div>
</div>
.parent{
    display: flex;
    justify-content: center;
}

缺点:低版本浏览器(ie6 ie7 ie8)不支持

4)使用flex+margin

原理:通过CSS3中的布局利器flex将子框转换为flex item,再设置子框居中以达到居中。

用法:先将父框设置为display:flex,再设置子框margin:0 auto。

<div class="parent">
    <div class="child">DEMO</div>
</div>
.parent{
    display: flex;
}
.child{
    margin: 0 auto;
}

垂直居中

1)使用absolute+transform

用法:先将父框设置为position:relative,再设置子框position:absolute,top:50%,transform:translateY(-50%)。

.parent {
    position:relative;
}
.child {
    position:absolute;
    top:50%;
    transform:translateY(-50%);
}

2)使用flex+align-items

原理:通过设置CSS3中的布局利器flex中的属性align-times,使子框垂直居中。

.parent {
    position:flex;
    align-items:center;
}

水平垂直居中

1)使用absolute+transform

.parent {
    position:relative;
}
.child {
    position:absolute;
    left:50%;
    top:50%;
    transform:tranplate(-50%,-50%);
}

2)使用flex+justify-content+align-items

.parent {
    display:flex;
    justify-content:center;
    align-items:center;
}

原文地址:https://www.cnblogs.com/QianBoy/p/8539077.html

时间: 2024-10-31 03:30:49

CSS布局方案的相关文章

web前端教程:CSS 布局十八般武艺都在这里了

CSS布局 布局是CSS中一个重要部分,本文总结了CSS布局中的常用技巧,包括常用的水平居中.垂直居中方法,以及单列布局.多列布局的多种实现方式(包括传统的盒模型布局和比较新的flex布局实现),希望能给需要的小伙伴带来一些帮助. 目录 1.常用居中方法:水平居中,垂直居中, 2.单列布局 3.二列&三列布局:float+margin,position+margin,圣杯布局(float+负margin),双飞翼布局(float+负margin),flex布局 如果你想学习交流html5css3

轻松学DIV教程(div+css布局)

你正在学习CSS布局吗?是不是还不能完全掌握纯CSS布局?通常有两种情况阻碍你的学习: 第一种可能是你还没有理解CSS处理页面的原理.在你考虑你的页面整体表现效果前,你应当先考虑内容的语义和结构,然后再针对语义.结构添加CSS.这篇文章将告诉你应该怎样把HTML结构化. 另一种原因是你对那些非常熟悉的表现层属性(例如:cellpadding,.hspace.align=left等等)束手无策,不知道该转换成对应的什么CSS语句.当你解决了第一种问题,知道了如何结构化你的HTML,我再给出一个列表

ionic css布局介绍(一)

                                                ionic css 布局介绍 1. 基本布局2. 色彩.图标和边距3. 界面组件列表4. 界面组件按钮5. 界面组件 表单输入6. 界面组件选项卡7. 定制布局 栅格系统------------------------------------------------ 1. 基本布局 1.布局模式 基本布局: 标题/header.内容/content 和页脚/footer. 标题区总是位于屏幕顶部,页脚

淘宝弹性布局方案lib-flexible实践

2个月前,写过一篇文章<从网易与淘宝的font-size思考前端设计稿与工作流>总结过一些移动web中有关手机适配的一些思路,当时也是因为工作的关系分析了下网易跟淘宝的移动页面,最后才有那篇文章的总结,可惜的是因为项目的关系,这两个月来几乎没有机会做移动类项目的工作,所以那些理论一直没有得到真正的实践.这次因为公司有一个app需要做一个推广的下载页面,虽然简单,但也值得一试那篇文章里提到的适配方法,所以本文的内容就是介绍该文中提到的淘宝的做法:<lib-flexible弹性布局方案>

CSS布局奇淫技巧之-多列等高

布局方案 等高布局有几种不同的方法,但目前为止我认为浏览器兼容最好最简便的应该是padding补偿法.首先把列的padding-bottom设为一个足够大的值,再把列的margin-bottom设一个与前面的padding-bottom的正值相抵消的负值,父容器设置超出隐藏,这样子父容器的高度就还是它里面的列没有设定padding-bottom时的高度,当它里面的任一列高度增加了,则父容器的高度被撑到它里面最高那列的高度,其他比这列矮的列则会用它们的padding-bottom来补偿这部分高度差

移动适配请使用比rem等更好的布局方案

??移动端大行其道,rem/em.百分比.响应式方案更是层出不穷,看见周围的伙伴们都在对使用rem和百分比情有独钟,可我却偏不爱,之所以出现如此多的方法,其目的只有一个屏幕适配. ??屏幕适配顾名思义就是一张设计稿还原出的程序要适应于当下市场上各种大小屏幕不一的终端,做到写一次各种终端大小的屏幕都能比例协调的显示.下面我们先来看下大家耳熟能详的几种方案是如何去解决屏幕适配的. rem/em:rem根元素字体大小单位,em元素字体大小单位.使用rem的时候我们需要在css中先为html元素设定fo

移动端自适应布局方案尝试

原文地址:移动端自适应布局方案尝试 问题 刚开始接触移动端H5页面的时候最困扰的几个问题是: 6或6p上明明是1px的边框怎么就成了2px或3px辣么粗! 图片,div等如何等比自适应设计图 后来慢慢知道了第一点是由于retina屏幕下设备像素比的问题造成,第二点知道了单位rem. 目的 不想因为使用rem而一一去计算设计稿的尺寸,设计稿750的尺寸的标注可以直接在sass中使用:字体不使用rem缩放,原因是: 显然,我们在iPhone3G和iPhone4的Retina屏下面,希望看到的文本字号

css布局的相关几个难点

前几天被问的一种布局方式,三列布局左右两列固定宽度,中间一列自适应的布局方案: 1.当然css3里面的flex是可以实现这种情况的,但是这个属性实在是兼容性太差,这里就说一种自己查的普适方案: 2.当时第一次看到这个题目的时候我想到的是float的方式,可是后来一想不行啊,浮动的话中间不能自适应啊,因为页面宽度降低,浮动的元素就会被挤压到下一层:废话少说这里的解决方案是,左右两列使用绝对定位的两边,中间元素使用百分比布局,然后再加上margin-left=左边元素的宽度,margin-right

一览css布局标准

回顾历史,CSS1于1996.12.17发正式版,它是为辅助HTML的展现效果而生的.1998.5.12,CSS2发正式版.随后发修订版CSS2.1,纠正了CSS2中的一些错误.注意从CSS2起,CSS的作用就不是辅助展现了,变为全全负责展现.(注:当年CSS2的勘误表有兴趣可以看看) CSS2.1明确了2个模型,一个是众所周知的盒模型(Box model),CSS1没有盒模型的概念,盒模型的前身在CSS1里叫做面向盒的格式化模型.元素抽象为盒,以盒为对象设计思路清晰多了.CSS3的盒模型丰富了