0 0

css如何在li里让一个元素垂直居中?10

我有一个li元素,其中的元素都是要垂直居中的。看图:



红框中左侧和右侧的div需要垂直居中,可是在li里,中间的B使行高拉大了,左侧和右侧的div默认就靠底部对其了,现在要使他垂直居中或者靠顶端对其,该怎么办?

基本的html代码如下:
<!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/html; charset=utf-8" />

<link rel="stylesheet" href="http://code.jquery.com/mobile/1.3.2/jquery.mobile-1.3.2.min.css">

<title>首页</title>

<script src="http://code.jquery.com/jquery-1.9.0.min.js"></script>
<script src="http://code.jquery.com/mobile/1.3.2/jquery.mobile-1.3.2.min.js"></script>

<style>
*{
	margin:0px;
	padding:0px;
}
body{
	padding:10px;
}
.line{
	width:100%;
	height:100%;
	border:1px solid #F00;
}
.left{
	width:50%;
 	background:#cce9ff;
	display:inline-block;
	position:relative;
}
.middle{
	width:25%;
 	background:#ffffff;
	display:inline-block;
	text-align:center;
}

.b0{
	margin:0px;
	padding:0px;
	text-align:left;
	background:#cce9ff;
}
.b1{
	text-align:center;
}
.b2{
	text-align:right;
	background:#69F;
}

.right{
	width:25%;
 	background:#cce9ff;
	display:inline-block;
	text-align:right;
}

</style>
</head>

<body>
<div data-role="page" id="page1">
	<div data-role="header">
         <h1>测试左中右结构</h1>
    </div>
	<div data-role="content">
    	<ul data-role="listview" data-inline="false" >
        <!--     
            <li style="background:#CFC;border:1px solid #F00;">
                <div class="line"><div class="left">A</div><div class="middle">B</div><div class="right">C</div></div>
            </li>
            -->
            <li style="background:#CFC;">
                <div class="line"><div class="left">我要垂直居中</div><div class="middle"><div class="b0">B0</div><div class="b1">B1</div><div class="b2">B2</div></div><div class="right">我要垂直居中</div>
                </div>
            </li>
           
        </ul>
    <div>
</div>


</body>
</html>

问题补充:PS:
不能使用top:-20px;一类的具体的数值使它看上去居中,必须自适应!
2014年7月22日 17:08
  • 大小: 2.3 KB

1个答案 按时间排序 按投票排序

0 0

如果设置了高度 可以通过line-height来控制垂直居中

<!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/html; charset=utf-8" />

<link rel="stylesheet" href="http://code.jquery.com/mobile/1.3.2/jquery.mobile-1.3.2.min.css">

<title>首页</title>

<script src="http://code.jquery.com/jquery-1.9.0.min.js"></script>
<script src="http://code.jquery.com/mobile/1.3.2/jquery.mobile-1.3.2.min.js"></script>

<style>
*{
	margin:0px;
	padding:0px;
}
body{
	padding:10px;
}
.line{
	width:100%;
	height:54px;;
	border:1px solid #F00;
        overflow: hidden;
}
.left{
	width:50%;
 	background:#cce9ff;
	display:inline-block;
        line-height:54px;
        float: left;
}
.middle{
	width:25%;
 	background:#ffffff;
	display:inline-block;
	text-align:center;
        float: left;
}

.b0{
	margin:0px;
	padding:0px;
	text-align:left;
	background:#cce9ff;
}
.b1{
	text-align:center;
}
.b2{
	text-align:right;
	background:#69F;
}

.right{
	width:25%;
 	background:#cce9ff;
	display:inline-block;
	text-align:right;
        line-height:54px;
        float: left;
}

</style>
</head>

<body>
<div data-role="page" id="page1">
	<div data-role="header">
         <h1>测试左中右结构</h1>
    </div>
	<div data-role="content">
    	<ul data-role="listview" data-inline="false" >
            <li style="background:#CFC;">
                <div class="line"><div class="left">我要垂直居中</div><div class="middle"><div class="b0">B0</div><div class="b1">B1</div><div class="b2">B2</div></div><div class="right">我要垂直居中</div>
                </div>
            </li>
           
        </ul>
    <div>
</div>


</body>
</html>


或者
vertical-align: middle;
display: inline-block;
但是这样也是需要高度

2014年7月22日 17:33

相关推荐

    div+css有实例,易学易懂

    6.3.2 未知容器的大小而已知内容大小的水平和垂直居中问题 6.3.3 已知容器的大小而未知内容大小的水平和垂直居中问题 6.3.4 容器的大小和内容大小均未知的水平和垂直居中 6.3.5 修饰图片的水平和垂直居中 6.4 字体的...

    css ul li导航菜单居中问题解决方法

    昨晚群里一个朋友帮忙解决的问题,之前没有遇到过,题目如下: 不改变html结构,使导航菜单垂直水平居中,导航宽度自适应屏幕100%,高度30px;单项高度28px,宽80px; 兼容:ie6+,ff,chrome,opera等主流浏览器。 ...

    Web前端与移动开发之复合选择器 css元素显示模式 背景属性.txt

    若第一个是精确单位 一定是x 则另一个垂直居中 ③混合单位 有顺序要求 第一个为x 第二个为y (5)背景固定 background-attachment: scroll | fixed ; (6)背景复合写法 background:颜色 图片地址url 平铺 ...

    H5+CSS3.zip

    css盒模型:块级元素,内联元素,内敛块状元素,none使元素隐身,设置宽度、高度、背景色、边框、圆角,padding内边距,margin外边距; css布局模型:流动模型flow,浮动模型float,层模型layer,层模型的绝对定位、...

    浅谈最全面的水平垂直居中方案与flexbox布局

    最近又遇到许多垂直居中的问题,这是Css布局当中十分常见的一个问题,诸如定长定宽或不定长宽的各类容器的垂直居中,其实都有很多种解决方案。而且在Css3的flexbox出现之后,解决各类居中问题变得更加容易了。搜了搜...

    css入门笔记

    独立于任何网页位置处,声明一个样式文件(.css为后缀),在文件中声明样式,在使用的网页中引入.css文件。 使用步骤: 1.创建样式表文件(.css) 2.在样式文件中编写样式规则 3.在网页中对样式文件进行引入 &lt...

    jQuery css3的简单的纵向时间轴代码.zip

    一款非常简单的jQuery纵向时间轴代码,无论li内容多少,直线都不会超出,并且红点永远居中的jQuery垂直时间轴插件。 js代码 [removed] $(document).ready(function(e) { var h = $(".about4_main ul li:first-...

    JQuery&CSS;&CSS;+DIV实例大全.rar

    4.JS+CSS通用一个页面同时三个焦点图轮换效果完整实例 5.JS+CSS网页版模拟QQ登录框界面特效示例 6.JS+flash立柱广告代码仿百度MP3搜索右侧可伸缩的立柱广告效果 7.JS版本黑色超动感二级菜单导航模块代码 穿越...

    css js常用效果用法

    css js常用效果用法:纯CSS制作的新闻网站中的文章列表;定义li图片头;在DIV中图片垂直、水平居中(最简单方法);纯css的防止图片撑破页面的代码(图片自动缩放)

    基于HTML5+CSS3实现简单的时钟效果

    1) 利用position/left/top和calc()实现元素的水平和垂直居中; 2) 利用CSS3的animation/transform/transform-origin属性定义动画; 3) 利用transform-origin实现旋转原点的圆心调整 废话不多说了,直接看代码吧,...

    46种常见的浏览器兼容性问题大汇总

    2. const问题 3 3. event.x与event.y问题 3 4. window.location.href问题 3 5. frame问题 3 ...25. 属性选择器(这个不能算是兼容,是隐藏css的一个bug) 3 26. 为什么FF下文本无法撑开容器的高度 3

    overflow:hidden line-height clearfix:after使用方法介绍

    1.overflow:hidden的作用是隐藏溢出比如: 复制代码代码如下: &lt;div xss=removed id=1&gt;&lt;div id=2&gt;&lt;/div&gt;&lt;div&gt; ...)这样可以让文字在&lt;li&gt;内相对于30px垂直居中。比如用在内,像这样成段落的,如果不加lin

    移动端android上line-height不居中的问题的解决

    现在越来越多的移动界面使用rem适配,遇到的坑也不尽其数,今天就移动端android上line-height不居中的问题提出自己的解决办法。 据分析得知原因: 1.字体大小不要使用奇数字号,带小数点的更不要提了。也就是说...

    DIV+CSS 兼容小集

    在ie7下显示非常完美,用firefox一测试,乖乖一探糊涂 惨不忍睹。经过一番研究发现兼容很 简单。 1、增加 div {overflow: hidden;},目的就是让div自动适应内容高度 2、横排的div外套div 另外设定 ul { margin: 0...

    html入门到放弃笔记

    4、一个元素允许有多属性,多属性间,排名不分先后,中间用 空格 隔开即可 Demo : 1、创建一个 div 标记 ,增加属性 ,设置 align 属性的值为 center ,设置 id 属性的值为 container,设置 title 属性的值为 这...

    stylus-utilities:一组有用的 Stylus mixin

    文档容器(宽度) 给框一个特定的宽度并使其水平居中。 .container container ( 960 px )center-both(宽度) 将块设置为指定的宽度并将其垂直和水平居中。 .centered center-both ( 300 px )清除修复 () 清除带有...

Global site tag (gtag.js) - Google Analytics