DIV居中以及设置隐藏的几种方式

PartI DIV居中的常用方法:

1)text-align:center方式

--------------------------html-----------------------------

<div class="demo1">
<div class="text1">demo</div>
</div>

--------------------------css-----------------------------

.demo1 {
text-align: center;
}

注: 块元素不可以!

2)margin: 0 atuo方式
-------------------------html-----------------------------

<div class="demo2">
<div class="text2">demo</div>
</div>

--------------------------css-----------------------------

.text2 {
margin: 0 auto;
width: 200px;
background: red;
}

注: 这种对齐方式要求内部元素(.text2)是块级元素,并且不能脱离文档流(如设置position:absolute),否则无效。

3) 脱离文档流的居中方式(position:absolute)
通过absolute的流体特性实现居中。(对立方向同时发生定位)
-------------------------html-----------------------------

<div class="demo3">
<div class="text3">demo</div>
</div>

--------------------------css-----------------------------

.text3 {
width: 300px;
height: 300px;
position: absolute;
background: red;
left: 0;
right: 0;
top: 0;
bottom: 0;
margin: auto;
}

注: 行内块不可以!

4) display:table-cell
display:table-cell配合width,height
text-align:center,vertical-align:middle让大小不固定元素垂直水平居中,
这个方式将要对其的元素设置成为一个td,float、absolute等属性都会影响它的实现。
-------------------------html-----------------------------

<div class="demo4">
<div class="text4">demo</div>
</div>

--------------------------css-----------------------------

.demo4 {
display: table;
width: 100%;
height: 500px;
background: red;
}
.text4 {
display: table-cell;
text-align: center;
vertical-align: middle;
/* 影响效果 */
/* float: left; */
/* position: absolute; */
}

5) 垂直居中
只需设置line-height即可,height不需要设置。(因为div的高度是由行高决定的!)
-------------------------html-----------------------------

<div class="demo5">
<div class="text5">demo</div>
</div>

--------------------------css-----------------------------

.demo5 {
line-height: 80px;
background: red;
}

6)使用css3的translate水平垂直居中元素
这种方式将脱离文档流的元素,设置top:50%,left:50%,然后使用transform来向左向上偏移半个内元素的宽和高。
-------------------------html-----------------------------

<div class="demo6">
<div class="text6">demo</div>
</div>

--------------------------css-----------------------------

.text6 {
position: absolute;
top: 50%;
right: 50%;
transform: translate(-50%, -50%);
}

7)使用css3计算的方式居中元素calc
这种方式同样是将脱离文档流的元素,然后使用计算的方式来设置top和left;
-------------------------html-----------------------------

<div class="demo7">
<div class="text7">demo</div>
</div>

--------------------------css-----------------------------

.text7 {
position: absolute;
top: calc(50% - 100px);
left: calc(50% - 50px);
}

PartII CSS设置隐藏的常用方法:

1)display: none

将元素从文档中删除,不占空间,对布局没有影响,但会产生回流。

2)text-indent: -999em

将文字提到段落前面,不让看见,会影响布局

3)font-size: 0

直接将文字的高度设为0,从而不让看见

4)position: relative / absolute;

 **top: -999em / left: -999em**

不占据空间,只要距离显示屏幕足够大就ok,适用于比较写死的东西,不能随意修改。

5)visibity: hidden

只是看不见而已,占据空间,无法点击,元素依然会影响布局,不产生回流,性能较好

注: 该属性会继承,父元素使用其隐藏,子元素也会受其影响,看不见,必须通过设置visibility:visible让其显示

6)opacity: 0

设置透明度为0,使其看不见。占空间,可以点击。

7)z-index: -1 任意负值

上一级设置背景色,使其看不见。不能点击

8)clip: rect(0,0,0,0)

裁剪隐藏,不占据空间,不能点击。

Q: 使用隐藏元素需考虑的关键点有哪些?

A: 1. 是否占据空间

2. 回流与渲染  见web的回流与重绘

3. 株连性 (visibility的继承性)

Q: display: none 和 visibility:hidden的区别

A: display: none 不占空间,对布局没影响,会产生回流

visibility: hidden 占空间,对布局有影响,不产生回流,性能比display:none好

Q: z-index 负值设置隐藏和clip裁剪设置隐藏的区别

A: z-index 只需要层叠上下文内的某一个父元素加个背景色即可,元素无需绝对定位,设置position: relative 也可隐藏。并且对原来的布局以及父元素的行为无任何影响

clip 必须绝对定位或固定定位,因为此属性定义了绝对定位对象可视区域的尺寸,所以必须得将position属性的值设置为absolute时才可使用并且会导致focus的焦点发生细微的变化,在特定条件下有体验问题。

原文地址:https://www.cnblogs.com/zppsakura/p/12395355.html

时间: 2024-08-16 13:04:46

DIV居中以及设置隐藏的几种方式的相关文章

java中设置代理的两种方式

1 前言 有时候我们的程序中要提供可以使用代理访问网络,代理的方式包括http.https.ftp.socks代理.比如在IE浏览器设置代理. 那我们在我们的java程序中使用代理呢,有如下两种方式.直接上代码. 2 采用设置系统属性 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 import jav

WPF设置样式的几种方式

第一种方式是直接使用Setter来进行,可以对Background等进行设置. <Window.Resources> <Style TargetType="Button"> <Setter Property="Background" Value="Red"/> </Style></Window.Resources> 第二种是直接将比较复杂一点的Style放置到Window.Resourc

【iOS开发-72】设置状态栏的两种方式、程序生命周期以及更好地理解几大类(对象)之间的关系

(1)设置状态栏的2种方式 --第一种方式就是我们在控制器中设置,系统默认就是交给视图控制器去管理的,这样不同视图控制器可以自定义不同的状态栏如下: -(BOOL)prefersStatusBarHidden{ } -(UIStatusBarStyle)preferredStatusBarStyle{ } --如果我们需要交给UIApplication对象管理(iOS6之前就是),则需要如下设置: 先在info.plist中把默认的设置修改掉: 然后直接用如下代码即可: - (void)view

div居中 边框设置 文字行高设置

<!DOCTYPE HTML><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>无标题文档</title><style>.divCen{    width:200px; height:100px;     margin:90px auto; /*div居中*/  

UIView设置背景图片几种方式

一 . 设置UIView的背景图片 1.将图片作为UIView的背景色,该方法过于占内存,不建议使用. //1.imageNamed方式 self.view.backgroundColor = [UIColorcolorWithPatternImage:[UIImageimageNamed:@"image.jpg"]]; //2.方式    NSString *path = [[NSBundlemainBundle]pathForResource:@"image"o

Android 给layout设置动画的两种方式

public class MainActivity extends Activity { LinearLayout layout; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); layout = (LinearLayout) findViewById(R.id.layout); lay

JS动态设置css的几种方式

1. 直接设置style的属性  某些情况用这个设置 !important值无效 如果属性有'-'号,就写成驼峰的形式(如textAlign)  如果想保留 - 号,就中括号的形式  element.style['text-align'] = '100px'; element.style.height = '100px'; 2. 直接设置属性(只能用于某些属性,相关样式会自动识别) element.setAttribute('height', 100); element.setAttribute

下拉选项设置数据的三种方式介绍

度量快速开发平台中,在智能窗体上拖入下拉选择,可以实现很多功能.比如制作查询条件,选择数据等. 方法1:直接在下拉选择右边属性中设置数据. 使用效果: 该方法设置简答,对于那种是固定数据的设置,可以采用这样的效果实现.下拉选项1.Value   与 下拉选项1.SelectedText 获取的值都一样. 方法2:用下拉选项的SetItems方法实现 下拉选项1.SetItems("A,B,C,D",false) 效果与方法一一样,这个方法可以动态的来设置数据,比如根据不同的条件设置不同

设置CSS的几种方式

内联样式表 <meta http-equiv="content-type" content="text/css" /> 嵌入样式表 <head> <style type="text/css"> <!-- ... --> </style> </head> 外部样式表 <!DOCTYPE html> <html> <head> <link