问答详情
源自:10-1 编程挑战

li 元素标签之间的空隙是怎么回事,求解~~

<!DOCTYPE html>

<html>

<head>

    <meta charset="gb2312">

    <title>实践题 - 选项卡</title>

    <style type="text/css">

     /* CSS样式制作 */  

     * { margin:0px; padding:0px;}

#container {

margin:20px auto;

width:300px;

height:170px; 

}

#container ul {

list-style:none;

margin:10px auto 0px;

width:280px;

height:32px;

border-bottom:2px solid #7E2F00;

}

#container ul li { 

display:inline-block; 

width:70px; 

text-align:center; 

line-height:30px;

margin-left:5px;

border:1px solid #B2B0AA;

border-bottom:none;

}

#container ul li.current {

border-top:2px solid #7E2F00;

border-bottom:2px solid #ffffff;

}

#container ul li:hover{

cursor:pointer;

}

        #container .display {

margin:0px auto;

width:278px;

height:120px;

border:1px solid blue;

border-top:none;

}

#container .display p{

padding:7px;

font-size:13px;

}

#container .hide{

display:none;

}

    </style>

    <script type="text/javascript">

         

    // JS实现选项卡切换

    window.onload = function(){

var li = document.getElementsByTagName("li");

for(var i=0; i<li.length; i++){

li[i].index=i;

li[i].setAttribute("onclick","clk(this)");

}

}

function clk(o){

// console.log(o.index);

var li = document.getElementsByTagName("li");

for(var i=0; i<li.length; i++){

li[i].className = "";

}

o.className = "current";

var ndiv = document.getElementsByTagName("div");

// console.log(ndiv.length);

for(var j=1; j<ndiv.length; j++){

ndiv[j].className="hide";

}

var k=o.index+1;

// console.log(k);

ndiv[k].className="display";


}

    

    </script>

 

</head>

<body>

<!-- HTML页面布局 -->

<div id="container">

<!--ul...li选项卡-->

<ul>

<li>房产</li>

<li>家居</li>

<li>二手房</li>

</ul>

<!--下边对应三个内容-->

<div>

<p>275万购昌平邻铁三居 总价20万买一居</p>

<p>200万内购五环三居 140万安家东三环</p>

<p>北京首现零首付楼盘 53万购东5环50平</p>

<p>京楼盘直降5000 中信府 公园楼王现房</p>

</div>

<div>

<p>40平出租屋大改造 美少女的混搭小窝</p>

<p>经典清新简欧爱家 90平老房焕发新生</p>

<p>新中式的酷色温情 66平撞色活泼家居</p>

<p>瓷砖就像选好老婆 卫生间烟道的设计</p>

</div>

<div>

<p>通州豪华3居260万 二环稀缺2居250w甩</p>

<p>西3环通透2居290万 130万2居限量抢购</p>

<p>黄城根小学学区仅260万 121平70万抛!</p>

<p>独家别墅280万 苏州桥2居优惠价248万</p>

</div>

</div>


 

</body>

</html>



提问者:流星雨_1 2015-10-04 01:31

个回答

  • Kusoku
    2015-10-04 17:34:57
    已采纳

    行框的排列会受到中间空白(回车空格等等)的影响,这些空白也会被应用样式,占据空间,所以会有间隔

  • mike652638
    2017-11-13 17:29:26

    font-size=0这个方法楼上已经有人答了(记得ul元素设置font-size:0后li元素重置回来比如 li {font-size: 14px}), 另外一种解决方案: ul {lette-spacing: -1em;} li {letter-spacing: normal}; 某些情况下, 后面这种方法更实用 :)  源自StackOverflow: https://stackoverflow.com/questions/5256533/a-space-between-inline-block-list-items

  • 慕姐7065020
    2016-09-12 11:32:32

    空白节点(多由于Enter造成),li不换行就可以解决问题。Internet Explorer会忽略节点之间生成的空白节点,其它浏览器不会忽略(可以通过检测节点类型,过滤子节点)。

  • 非专业人士
    2016-08-31 15:41:47

    html代码别换行 把li全部写在一行就行   font-size=0在某些浏览器可能会有异常

  • 乾上坤下
    2016-07-26 20:37:08

    牛666666

  • weibo_煮了吧_0
    2015-10-28 08:54:47

    在ul标签中设置font-size=0,在li中设置标签文字的大小;因为空格也属于字符,把字符大小设为0,就没有空格了。