使用HTML和CSS创建L形边框,是否可能?

时间:2012-06-06 21:13:25

标签: html css css3 border

是否可以仅使用HTML和CSS创建这样的L形边框?

An L-shaped border

编辑:这就是我现在所拥有的:http://jsfiddle.net/cBwh8/

Edit2:我想复制上面的图片 - 适当弯曲的圆角。这是我在这里遇到困难的主要原因:http://jsfiddle.net/cBwh8/1/

6 个答案:

答案 0 :(得分:4)

http://jsfiddle.net/HwKGx/1/

<div id="one">
    <div id="two">&nbsp;</div>
</div>   
#one {
    margin:10px;
    width:45px;
    height:75px;
    border:2px solid #333; }
#two{
    float:left;
    width:35px;
    height:65px;
    border-width:2px;
    border-style:solid;
    margin:-2px 0 0 -2px;
    border-color:#FFF #333 #333 #FFF;
}​

答案 1 :(得分:4)

试试这个:为我工作

div.outer {
    margin: 10px;
    width: 200px;
    height: 200px;
    border: 1px solid blue;
    border-radius: 10px;
}

div.inner {
    width: 160px;
    height: 160px;
    border-right: 1px solid blue;
    border-bottom: 1px solid blue;
    margin-top:-1px;
    margin-left:-1px;
    background:#FFF;
}

答案 2 :(得分:1)

有点棘手,但这样做很有意思

.left{float:left}
.right{float:right}
#container{border-right:1px solid #000;border-bottom:1px solid #000;width:300px;height:300px;margin:100px auto;}
#leftBox{width:70%;height:69%;border-right:1px solid #000;border-bottom:1px solid #000;}
#leftBox2{border-left:1px solid #000;width:100%;height:29%;}
#rightBox{width:29%;height:70%;border-top:1px solid #000;}

和标记

<div id="container">
<div id="leftBox" class="left"></div>
<div id="rightBox" class="right"></div>
<div id="leftBox2" class="left"></div>

答案 3 :(得分:1)

稍微复杂但有用的选项:

http://dabblet.com/gist/2884899

这是两个兄弟元素,绝对地,相对定位,z-indexed相互溢出。 顶部div隐藏了底部div的顶级边框。

这对于下拉菜单非常有用。 (有一个有边框的框,用上下文菜单展开)

编辑(从链接粘贴的代码):

<强> HTML

<div class="holder">
  <div class="top"></div>
  <div class="bottom"></div>
</div>

<强> CSS

.holder{    
  position:relative; 
}

.top{   
  width: 50px;  
  height:50px;
  background:red;
  border:blue solid 2px;
  border-bottom:none;
  position:relative;
  z-index:4;
} 

.bottom{
  z-index:2;
  width: 100px;
  height: 100px;
  position:absolute;
  top:50px;
  left:0;
  border: blue solid 2px;
  background:red;

}

答案 4 :(得分:1)

对于任何感兴趣的人,这里有一组L形的Fieldsets:

JSFiddler code

<强> HTML:

    <div>
        <fieldset class="topPortion">
            <legend>Some legend</legend>
            <input type="text" value="Foo" />
            <input type="submit" value="Submit" />
        </fieldset>
        <fieldset class="bottomPortion">        
            <input type="text" value="Foo" />
            <input type="submit" value="Submit" />
        </fieldset>
     </div>

<强> CSS:

fieldset.topPortion 
{
border: 1px solid red;
border-bottom: 0;
/*top: 20px;*/
padding: 5px 5px;
position: relative;
width: 250px;
z-index: 100;
background-color: yellow;
top: 1px;
border-radius: 5px 5px 0 0;
}

fieldset.bottomPortion
{
border: 1px solid red;
width: 500px;
height: 100px;
position: absolute;
z-index: 1;
margin-top: -10;
padding: 5px 10px;
background-color: yellow;
border-radius: 0 5px 5px 5px;
}

答案 5 :(得分:0)

NECRO,实际上我刚刚遇到这个问题,这是我发现的第一篇文章,所以我想稍微补充一下,以防其他人在这里遇到问题或者问题仍然存在。 使用您链接的edit2,更改&#34; border-radius&#34;使用&#34; border-bottom-right-radius&#34;这使它只有右下角最终变圆,从而固定奇怪的圆形/褪色边缘。

您还可以添加类似的内容 -moz-border-radius-bottomleft:10px; -webkit-border-bottom-left-radius:10px; 如果您想为旧浏览器提供更多支持。