2016 - 2024

感恩一路有你

webkit功能设置 css没设宽度如何居中?

浏览量:1230 时间:2023-05-14 15:59:58 作者:采采

css没设宽度如何居中?

很多新手在写css的时候经常遇到的一个问题,当div没有固定的宽度或者高度的时候,如何才能让div水平或者垂直居中显示。

如果div有固定宽度的话,用padding,margin都很容易实现。方法有很多种。不过经常遇到这种div没有固定的宽度高度的情况,我们就不能用margin,padding设置固定的距离了。这个问题让很多人头疼。而怎么样才能让这个div居中显示呢?其实这种情况解决的办法也是有很多种,js,css都可以实现。

这里主要介绍一下采用css的方法,有什么问题还请各位看官指出。

方法一:

用一个“ghost”伪元素(看不见的伪元素)和 inline-block / vertical-align 可以搞定居中,非常巧妙。但是这个方法要求待居中的元素是 inline-block,不是一个真正通用的方案。

html如下:

XML/HTML Code复制内容到剪贴板

ltdivclass#34block#34style#34height:300px#34gt

ltdivclass#34centered#34gt

lth1gthaorooms案例题目lt/h1gt

ltpgthaorooms案例内容,haorooms案例内容haorooms案例内容haorooms案例内容haorooms案例内容haorooms案例内容haorooms案例内容haorooms案例内容haorooms案例内容lt/pgt

lt/divgt

lt/divgt

css如下:

CSS Code复制内容到剪贴板

/*Thisparentcanbeanywidthandheight*/

.block{

text-align:center

}

/*Theghost,nudgedtomaintainperfectcentering*/

.block:before{

content:#34#34

display:inline-block

height:100%

vertical-align:middle

margin-right:-0.25em/*Adjustsforspacing*/

}

/*Theelementtobecentered,can

alsobeofanywidthandheight*/

.centered{

display:inline-block

vertical-align:middle

width:50%

}

方法二:

可以用table布局方法,但是这种方法也有局限性!

写法如下:

XML/HTML Code复制内容到剪贴板

lttablestyle#34width:100%#34gt

lttrgt

lttdstyle#34text-align:centervertical-align:middle#34gt

Unknownstufftobecentered.

lt/tdgt

lt/trgt

lt/tablegt

由于table写法比较费时,你也可以用div代替table,写法如下:

html:

XML/HTML Code复制内容到剪贴板

ltdivclass#34something-semantic#34gt

ltdivclass#34something-else-semantic#34gt

Unknownstufftobecentered.

lt/divgt

lt/divgt

css:

CSS Code复制内容到剪贴板

.something-semantic{

display:table

width:100%

}

.something-else-semantic{

display:table-cell

text-align:center

vertical-align:middle

}

方法三,终极解决方法:

以上2中方法可能都有其局限性,我介绍的第三中方法是比较成熟的不是固定高宽div的垂直居中的方法!但是方法是css3的写法,想兼容IE8的童鞋们,建议用上面的方法!

方法和我们固定高宽的差不多,但是不用margin我们用的是 translate()

demo如下:

CSS Code复制内容到剪贴板

lt!DOCTYPEhtmlPUBLIC#34-//W3C//DTDXHTML1.0Strict//EN#34##34gt

lthtmlxmlns##34xml:lang#34en#34gt

ltheadgt

ltmetahttp-equiv#34Content-Type#34content#34text/htmlcharsetUTF-8#34gt

lttitlegthaorooms不固定高度div写法lt/titlegt

ltstylegt

.center{

position:fixed

top:50%

left:50%

background-color:#000

width:50%

height:50%

-webkit-transform:translateX(-50%)translateY(-50%)

}

lt/stylegt

lt/headgt

ltbodygt

ltdivclass#34center#34gtlt/divgt

lt/bodygt

lt/htmlgt

我上面的css只是针对webkit内核的浏览器,其他内核浏览器写法如下:

CSS Code复制内容到剪贴板

-webkit-transform:translateX(-50%)translateY(-50%)

-moz-transform:translateX(-50%)translateY(-50%)

-ms-transform:translateX(-50%)translateY(-50%)

transform:translateX(-50%)translateY(-50%)

有些弹出层的样式,也可以用这个方法居中

CSS Code复制内容到剪贴板

position:fixed

top:50%

left:50%

width:50%

max-width:630px

min-width:320px

height:auto

z-index:2000

visibility:hidden

-webkit-backface-visibility:hidden

-moz-backface-visibility:hidden

backface-visibility:hidden

-webkit-transform:translateX(-50%)translateY(-50%)

-moz-transform:translateX(-50%)translateY(-50%)

-ms-transform:translateX(-50%)translateY(-50%)

transform:translateX(-50%)translateY(-50%)

无固定高度的div垂直居中代码要点:

父容器vc的css属性 display:tableoverflow:hidden

子容器vci的css属性 vertical-align:middledisplay:table-cell

针对ie6的hack,vci容器的 _position:absolute_top:50% 和content容器的 _position:relative _top:-50%

手机怎么设置兼容性站点网址?

手机是没有兼容性模式的。

因为兼容性模式是针对pc端的网页和浏览器一种模式。

所谓兼容性模式是pc端的一些浏览器可能存在双核的浏览器,一个是webkit内核一个ie浏览器的内核,一般兼容性模式指的是切换到IE浏览器内核的模式下,因为很多之前的网页都是基于IE浏览器开发,在webkit内核下的浏览器可能会出现一些显示的不正确的兼容性问题。

而针对高版本的IE浏览器兼容模式就是使用版本较低的IE浏览器来解析网页,这也是针对之前老网站针对低版本IE浏览器的网页。

手机端之所以没有兼容模式那是因为手机端的浏览器都是基于webKit内核,没有针对ie浏览器内核的手机端浏览器,所以不会出现兼容性的问题。

内容 方法 复制 align div

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。