Heim >Web-Frontend >HTML-Tutorial >纯CSS如何实现子元素自适应宽度并居中_html/css_WEB-ITnose

纯CSS如何实现子元素自适应宽度并居中_html/css_WEB-ITnose

WBOY
WBOYOriginal
2016-06-21 08:51:561568Durchsuche



如上图所示,红色部分DIV宽度是100%,蓝色的是子元素,子元素有border-bottom,且文字右边有一个双箭头。

现要求如下:
1、纯CSS实现,不使用JS和table。
2、文字因为是用户输入的,所以每一行的文字宽度都不是固定的,但是文字只考虑一行的情况,不考虑两行,可以用white-space:nowrap;禁止换行。
3、每个子元素右边的双箭头必须是对齐的,右边双箭头与最长那行文字的距离是10px固定的,其它行双箭头与该行双箭头对齐。
4、因为这个是手机端的网页,所以可以考虑用CSS3、HTML5,只要主流的手机浏览器支持即可

不知道上面的要求,纯CSS有没有办法实现,具体的思路是什么,HTML可以随意写,只要能实现像图片中这样显示就可以。


回复讨论(解决方案)

另外右边双箭头与最长那行文字的距离是10px固定的,其它行双箭头与该双箭头对齐

<div class="iprocat">	<ul>		<li><a href="/index.php?catid=8">American Axle</a></li>		<li><a href="/index.php?catid=9">Germanic Axle</a></li>		<li><a href="/index.php?catid=10">Suspension</a></li>		<li><a href="/index.php?catid=11">Bogie</a></li>		<li><a href="/index.php?catid=12">Brake Drum</a></li>		<li><a href="/index.php?catid=13">Axle</a></li>		<li><a href="/index.php?catid=14">Brake Disc</a></li>		<li><a href="/index.php?catid=15">Brake Shoe</a></li>		<li><a href="/index.php?catid=16">Wheel Hub</a></li>		<li><a href="/index.php?catid=17">King Pin Series</a></li>		<li><a href="/index.php?catid=18">Fifth Wheel Series</a></li>	</ul></div>


*{margin:0;padding:0;outline:none;}body{font:menu;font-size:0.24rem;}a{text-decoration:none;color:#333;}a:hover{text-decoration:underline;color:#d00;}li{list-style:none;}img{border:none;vertical-align:top;}@font-face {  font-family: 'iconfont';  src: url('//at.alicdn.com/t/font_1460087185_4783318.eot'); /* IE9*/  src: url('//at.alicdn.com/t/font_1460087185_4783318.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */  url('//at.alicdn.com/t/font_1460087185_4783318.woff') format('woff'), /* chrome、firefox */  url('//at.alicdn.com/t/font_1460087185_4783318.ttf') format('truetype'), /* chrome、firefox、opera、Safari, Android, iOS 4.2+*/  url('//at.alicdn.com/t/font_1460087185_4783318.svg#iconfont') format('svg'); /* iOS 4.1- */}.iprocat{background:url(../images/iprocat-bg.jpg);text-align:center;overflow:hidden;}.iprocat ul{display:inline-block;text-align:left;font-size:.24rem;line-height:.4rem;padding-bottom:.24rem;}.iprocat li{border-bottom:1px solid #ddd;position:relative;}.iprocat li:before,.iprocat li:after{content:'';border-bottom:1px solid #ddd;width:100%;position:absolute;bottom:-1px;}.iprocat li:before{right:100%;}.iprocat li:after{left:100%;}.iprocat li a{color:#666;display:block;}.iprocat li a:before{content:'\e604';font-family:'iconfont';float:right;color:#ddd;margin-left:.1rem;}



视觉上实现了,但是border-bottom是使用:before和:after拼合起来实现的,不知道有没有更好的办法

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn