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

如何解决给标题添加上边框时标题元素文字下沉?

看演示文字好像也下沉了,怎么才能让文字不移动位置?

提问者:飞客 2016-10-13 20:03

个回答

  • 须木一瓜
    2016-10-14 09:35:58

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="UTF-8">
        <title>实践题 - 选项卡</title>
        <style type="text/css">
         /* 
         标签和文本结合区域效果制作:
         1.用ul做分类标签
         2.把ul的display定义为block使ul区域和下面div区域结合在一起
         3.给ul定义一个下边框或者给div内容区域定义一个上边框
         4.所有li标签默认样式不设下边框,作为激活显示的li标签加宽其#fff(白色)
         区域的下边框,覆盖。
         */  
            /*全局元 素内边距0 外边距0 字体微软雅黑 12px 不加粗*/
            *{padding:0px;margin: 0px;font:12px normal "microsoft yahei";}
            
            /*以下是3个标签部分CSS*/
            /*div标签 宽290px 内边距 5px 高150px 外边距20px(这里,div标签在相对于浏览器)*/
            #tabs {width:290px;padding:5px;height:150px;margin:20px;}
            
            /* ul 去除无序列表的小圆点  显示为块级元素,独占一行  高度30px 行间距30px  边框底部实线重褐色 2px*/
            #tabs ul{list-style:none;display: block;height:30px;line-height:30px;border-bottom:2px saddlebrown solid;}
            
            /*li  背景绿色 手型光标 浮动在左(相对于div容器) 去除li的样式 li高28px 行间距28px(为了让文字垂直居中设置与行高相同)左右与div边距3px 边框实线1px灰色 底部无边框  具有块级元素和内联元素的双重属性,同行,能设宽高 宽60px 文章水平据中*/
            #tabs ul li{background:#0F0;cursor:pointer;float:left;list-style:none;height:28px;line-height:28px;margin:0px 3px;border:1px solid #aaaaaa;border-bottom:none;display:inline-block;width:60px;text-align: center;}
            
            /* 边框顶部2px 实线 重褐色#fff 白色(不显示)*/
            #tabs ul li.on{border-top:2px solid saddlebrown;border-bottom: 2px solid #fff;}
            
            /*以下是内容部分*/
            /*高120px 行间距25px 边框实线1px蓝色 顶部无边框 内边距5px*/
            #tabs div{height:120px;line-height: 25px;border:1px solid #336699;border-top:none;padding:5px;}
           
             /*hide元素不会被显示*/
            .hide{display: none;}
        </style>
        <script type="text/javascript">
         window.onload=function(){
            var oTab = document.getElementById("tabs")
            var li = document.getElementsByTagName("li");
            var div = oTab.getElementsByTagName("div");//oTabs.get...是为了定义className作用对象为id为tabs下的所有文本div
            
            for(var i=0;i<li.length;i++){//获取所有i编号的元素
                li[i].index = i;  //定义一个index属性对li进行编号 防止闭包函数中无法正常获取当前索引i,而衍生出的一个绑定在dom元素上的数据index
    
                li[i].onclick = function(){//再注册一个点击事件,当点击的时候所有标签都恢复最初状态
                for(var n=0;n<li.length;n++){//这步是相对于未被点击部分的样式
                    li[n].className = "";
                    div[n].className = "hide";// div所有的div隐藏
                }
                this.className = "on";//再对点击事件添加相应的属性
                div[this.index].className = "";//通过之前的index编号绑定的指定div
                }
            }
        }
        </script>
    
    </head>
    <body>
    <div id="tabs">
        <ul>
            <li>房产</li>
            <li>家居</li>
            <li>二手房</li>
        </ul>
        <div>
            275万购昌平邻铁三居 总价20万买一居<br>
            200万内购五环三居 140万安家东三环<br>
            北京首现零首付楼盘 53万购东5环50平<br>
            京楼盘直降5000 中信府 公园楼王现房<br>
        </div>
        <div>
            40平出租屋大改造 美少女的混搭小窝<br>
            经典清新简欧爱家 90平老房焕发新生<br>
            新中式的酷色温情 66平撞色活泼家居<br>
            瓷砖就像选好老婆 卫生间烟道的设计<br>
    
        </div>
        <div>
            通州豪华3居260万 二环稀缺2居250w甩<br>
            西3环通透2居290万 130万2居限量抢购<br>
            黄城根小学学区仅260万 121平70万抛!<br>
            独家别墅280万 苏州桥2居优惠价248万<br>
    
        </div>
    </div>
    
    </body>
    </html>