html居中

水平居中布局与滚动条跳动的千年难题

吃可爱长大的小学妹 提交于 2019-12-04 19:52:38
绝大多数的页面间布局都是水平居中布局,主体定个宽度, 然后margin: 0 auto的节奏~例如,妇女之友大淘宝的首页: .warp{ width:1190px; margin:0 auto; position:relative; } 然而,这种布局有一个存在一个影响用户体验的隐患。应该都知道,现代浏览器滚动条默认是overflow:auto类型的,也就是如果尺寸不足一屏,没有滚动条;超出,出现滚动条。于是,问题来了: 1,信息流页面,如新浪微博,是从上往下push渲染的。开始只有头部一些信息加载,此时页面高度有限,没有滚动条;然后,更多内容显示,滚动条出现,占据可用宽度,margin: 0 auto主体元素自然会做偏移——跳动产生。 2,JS交互,本来默认页面高度不足一屏,结果点击了个“加载更多”,内容超过一屏,滚动条出现,页面主体就会左侧跳动。 3,结构类似几个页面通过头部的水平导航刷新切换,结果有的页面有滚动条,有的没有。造成的结果就是,导航尼玛怎么跳来跳去! 当前优化这种体验问题,一般有两种解决方法: 高度尺寸不确定的,例如,新浪微博,使用: body { overflow-y: scroll; } 高度确定的,例如淘宝网首页。使用CSS把页面尺寸布局骨架搭好,再在里面吐数据。于是,要么没有滚动条,要么滚动条直接出现。不会出现跳动。 然而,然而

【前端知识体系】CSS布局知识强化

给你一囗甜甜゛ 提交于 2019-12-04 18:28:13
1.实现两栏/三栏布局的方法? 表格布局 float + margin布局 inline-block布局 flexbox布局(兼容性的问题) 1.1 基础布局 <style> * { margin: 0; padding: 0; } .layout { margin-top: 10px; } .layout div{ min-height: 100px; } </style> <body> <!--1.浮动的方式来实现布局--> <section class="layout float"> <style> .layout.float .left { float: left; width: 300px; background-color: #48adff; } .layout.float .main { background-color: #ff4344; } </style> <article class="left-main"> <div class="left"></div> <div class="main"> <h1>浮动两栏布局</h1> <p>两栏布局的中间部分</p> <p>两栏布局的中间部分</p> </div> </article> </section> <!--2.定位的方式来实现布局--> <section class="layout absolute">

如何让div中的内容垂直居中

对着背影说爱祢 提交于 2019-12-04 17:14:39
虽然Div布局已经基本上取代了表格布局,但表格布局和Div布局仍然各有千秋,互有长处。比如表格布局中的垂直居中就是Div布局的一大弱项,不过好在千变万化的CSS可以灵活运用,可以制作出准垂直居中效果,勉强过关。 要让div中的内容垂直居中,无非有以下几种方法,等我一一列举: 一、行高( line-height )法 如果要垂直居中的只有一行或几个文字,那它的制作最为简单,只要让文字的行高和容器的高度相同即可,比如: p { height:30px; line-height:30px; width:100px; overflow:hidden; } 这段代码可以达到让文字在段落中垂直居中的效果。 二、内边距( padding )法 另一种方法和行高法很相似,它同样适合一行或几行文字垂直居中,原理就是利用padding将内容垂直居中,比如: p { padding:30px; } 这段代码的效果和line-height法差不多。 三、模拟表格法 模拟表格法其实就是用CSS中对元素的声明让块元素像表格一样显示,用到的CSS属性有display、vertical-align等。 先看下面的Html代码: <div id="box"> <div id="content">居中显示</div> </div> 参照以上Html代码,让最外面名为box的Div呈表格样式显示

Html5-CSS之元素的五大居中方式

孤人 提交于 2019-12-04 14:42:07
Html5-CSS之五大居中方式 你是不是也对元素居中的知识点很是模糊?是不是苦于找不到一个总结的通俗易懂的说明?是不是自己懒得去总结?恭喜你,搜到这篇博客! 这是鄙人在前端的学习与实践中总结出的元素的五大居中方式,黏贴了代码并对代码做了解释,希望对迷茫的有所帮助! 下面的居中示例中,统一使用了同一个div作为父元素和p作为子元素 设置一个div,并且设置了div的宽高边框,div里面设置一个块元素p,设置了它的宽高和背景色 css居中方式1 <!doctype html> < html > < head > < meta charset = " utf-8 " > < title > 五大居中1 </ title > < style > * { margin : 0 ; } div { width : 200px ; height : 300px ; border : 2px solid #000 ; margin : 200px auto ; text-align : center ; font-size : 0 ; } div p { width : 100px ; height : 100px ; background : #666 ; display : inline-block ; vertical-align : middle ; } div:after {

div上下左右居中几种方式

丶灬走出姿态 提交于 2019-12-04 07:57:35
1、绝对定位(常用于登录模块) 备注:前提条件div需要有宽高 #html <div class="box"></div> #css .box{ position:absolute/fixed; left:0; right:0; top:0; bottom:0; margin:auto; } 2、margin负值 备注:前提条件div需要有宽高 #html <div class="box"></div> #css .box{ width:200px; height: 200px; position: absolute; left:50%; top:50%; margin-left:-100px; margin-top:-100px; } 3、css3 transform 备注:用于不确定当前div的宽度和高度 #html <div class="box"></div> #css .box{ position: absolute; left:50%; top:50%; transform: translate(-50%, -50%); } 4、flex 布局方式 #html <div class="box"> <div class="child">child</div> </div> #css .box{ display:flex; align-items:center;

【CSS】水平居中和垂直居中

大城市里の小女人 提交于 2019-12-04 06:48:44
水平居中和垂直居中 2019-11-12 15:35:37 by冲冲 1、水平居中 (1)父级元素是行内元素,子级元素是行内元素,子级元素水平居中 ① 设置父级元素为块级元素 display:block; ② 给父级元素添加 text-aglin:center; 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 <title>居中测试</title> 6 <style> 7 #father { 8 background-color: skyblue; 9 display:block; 10 text-align:center; 11 } 12 #son { 13 background-color: green; 14 } 15 </style> 16 </head> 17 18 <body> 19 <span id="father"> 20 <span id="son">我将居中</span> 21 </span> 22 </body> 23 </html> (2)父级元素是块级元素,子级元素是行内元素,子级元素水平居中 ① 给父级元素添加 text-aglin:center; (3)父级元素是块级元素,子级元素是块级元素,子级元素水平居中 方案一 (31)父级元素和子级元素有宽度 ① 给子级元素添加

CSS(5)---通俗讲解盒子模型

对着背影说爱祢 提交于 2019-12-04 04:57:05
CSS(5)---盒子模型 盒子模型四个关键字: 内容(content) 、 填充(padding) 、 边框(border) 、 边界(margin) , CSS盒子模式都具备这些属性。 一、概念 1、 概念 盒子的概念就好比你现在网上买了一个苹果手机,那么新手机肯定是放在一个盒子里给你寄来。 那么这苹果手机本身就指的是 内容(content) , 为了让手机安全寄到会在盒子里放点泡沫这就是 填充(padding) , 那么这个盒子本身肯定是有它的宽度的这叫 边框(border) , 每个盒子与每个盒子之间的距离叫 边界(margin) 。 如图 2、元素的宽度和高度 重要 当您指定一个CSS元素的宽度和高度属性时,实际只是设置内容区域的宽度和高度。要知道,完全大小的元素,你还必须添加填充,边框和边距。 宽高公式 总宽度 = 内容宽度 + padding宽度(左右) + border宽度(左右) + margin宽度(左右) 总高度 = 内容高度 + padding高度(上下) + border高度(上下) + margin高度(上下) 举例 求下面的总宽度是多少? <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>宽和高</title> <style> div { background-color:

垂直水平居中方法小结

一个人想着一个人 提交于 2019-12-04 03:49:00
前言: 最近看到很多面试题目会问:请说出几种使用css完成垂直水平居中的方法?正好看css基础的时候看到 一篇文章 是讲完全居中的,这边对于文章中的内容做个小结。 一、使用absolute(Absolute Centering) 1.1 具体代码如下: .container { position: relative; } .absolute_center { position: absolute; top: 0; right: 0; bottom: 0; left: 0; width: 50%; height: 50%; margin: auto; padding: 20px; overflow: auto; } <div class="container"> <div class="absolute_center"> <ul> <li> 该方法的核心思想是是使用绝对定位布局,使当前元素脱离正常的流体特性,而使用absolute的流体特性 </li> </ul> </div> </div> 1.2 该方法的核心思想是: 使用absolute进行定位布局,脱离正常的块状元素流体特性,而通过absolute的流体特性完成垂直水平居中。 这里有两个基本知识点需要知道: 1.流体特性: 块状水平元素,如div元素,在默认情况下(非浮动、绝对定位等),水平方向会自动填满外部的容器

总结:前端开发中让元素水平垂直居中的方法

坚强是说给别人听的谎言 提交于 2019-12-03 23:19:33
前端开发中,我们经常需要对元素进行水平垂直居中。为此,小编特地总结了让元素居中的方法。 水平居中text-align:center; 这个是没有浮动的情况下,我们可以先将要居中的块级元素设为inline/inline-block,然后在其父元素上加上属性text-align:center;即可。如果要居中的块级元素直接是内联元素(span、img、a等),直接在其父级元素上加上属性text-align:center;即可; .way { border: 1px solid red; width: 250px; } .way img { max-width: 200px; } .way1 { text-align: center; font-size: 0px; //HTML图片之间,浏览器会产生默认的间距,父元素设置font-size:0px;可以很好地解决这个问题。 } <div class="way way1"> <img src="fj.jpg" alt=""> </div> 使用margin:0 auto;水平居中 前提:居中的元素必须是块级元素,如果是内联元素,需要添加属性display:block;而且元素不浮动。 .way2 img { display: block; margin: 0 auto; } <div class="way way2"> <img src=

CSS实现垂直居中的常用方法

风格不统一 提交于 2019-12-03 17:41:18
在前端开发过程中,盒子居中是常常用到的。 其中,居中又可以分为水平居中和垂直居中。 水平居中是比较容易的,直接设置元素的margin: 0 auto就可以实现。 但是垂直居中相对来说是比较复杂一些的。 下面我们一起来讨论一下实现垂直居中的方法。 首先,定义一个需要垂直居中的div元素,他的宽度和高度均为300px,背景色为橙色。代码如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>index</title> <style> .content { width: 300px; height: 300px; background: orange; } </style> </head> <body> <div class="content"></div> </body> </html> 效果如下: 我们需要使得这个橙色的div居中,到底该怎么办呢?首先我们让实现水平居中,上面已经提到过了,可以通过设置margin: 0 auto实现水平居中,代码如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>index</title> <style> .content { width: 300px;