【css】居中方案

html-css015

【css】居中方案,第1张

前言:根据最近学习的课程,简单总结一下学习到的css左右布局以及居中方案。后期学习深入之后再回来进行css居中的完整总结。

给所有子元素添加 float: left ,给父元素加 clearfix 类,清除浮动

html:

css:

将内联元素外部的块级元素的 text-align 设置为 center ,即可实现内联元素( inline 、 inline-block )的水平居中。

演示

将固定宽度的块级元素的 margin-left 和 margin-right 设置为 auto ,即可实现块级元素的水平居中。

演示

将每个块级元素的 display 设置为 inline-block ,然后将它们的父容器的 text-align 设置为 center ,即可使多个块级元素水平居中。

演示

设置内联元素的行高( line-heigt )和内联元素的父元素的高度( height )相等,且内联元素的字体大小远小于行高,即可使内联元素垂直居中。

演示

通过绝对定位元素距离顶部50%,并设置margin-top向上偏移元素高度的一半,即可实现垂直居中。

演示

借助CSS3中的transform属性向Y轴反向偏移50%的方法实现垂直居中

演示

通过vertical-align:middle实现CSS垂直居中是最常使用的方法,但是有一点需要格外注意,vertical生效的前提是元素的display:inline-block。因为inline-block可以兼具行内元素和块级元素的特点,能够使得元素有宽度和高度。从而在盒子内能够实现居中

通过display:flex实现CSS垂直居中的方法是给父元素display:flex而子元素align-self:center

这个跟CSS水平居中的原理是一样的,只是在flex-direction上有所差别,一个是row(默认值),另外一个是column。

给父元素display:table,子元素display:table-cell的方式实现CSS垂直居中,表格也是常用的居中模式,缺点就是会对下面的元素某些样式造成一定的影响,不推荐经常使用这个方式。

先给父元素position:relative,再给子元素position:absolute,通过translateY即可定位到垂直居中的位置。这个是纵轴居中,由CSS3的新特性translate,可以改变元素在纵轴上的偏移。

设置子元素的line-height值等于父元素的height,这种方法适用于子元素为单行文本的情况。同样也是纵轴居中。

括展资料:

层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。CSS不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化。 CSS百度百科CSS参考手册

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/htmlcharset=gb2312" />

<title>无标题文档</title>

<!--原理很简单,给要铺满整个屏幕的div层的宽度100% 其余要居中显示的内容给一个宽度,不要超过1000,并上设置margin属性上下为0,左右为自动-->

<style type="text/css">

<!--

body{margin:0 autopadding:0font-size:12px}

.top{width:100%height:24pxbackground:#DBDBDBmargin:0 auto}

.top .font{width:900pxheight:24pxline-height:24pxtext-align:rightmargin:0 auto}

.main{width:900pxheight:500pxbackground:#5692EBmargin:0 auto}

-->

</style>

</head>

<body>

<div class="top">

<div class="font">设为首页 | 加入收藏</div>

</div>

<div class="main"></div>

</body>

</html>