代码之家  ›  专栏  ›  技术社区  ›  Srikar Appalaraju Tonetel

框使用HTML/CSS,但在右上角打开?

  •  0
  • Srikar Appalaraju Tonetel  · 技术社区  · 15 年前

    我有一个DIV,它的样式属性设置为“border top,left,right,bottom”。 但我不希望边框顶部完成框(这将是一个矩形)。我想要一个小的(大约2-3倍)开口在右上角(在盒子的长度一侧)。

    怎么能做到?

    我认为CSS中有一个属性叫做“border-top-width”,但没有“border-top-length”。

    可以用CSS完成吗?也欢迎采用其他方法。

    谢谢。。。

    5 回复  |  直到 15 年前
        1
  •  2
  •   peirix    15 年前

    我认为这是不可能的……我唯一能想到的方法就是在它内部创建另一个元素(1px宽,3px高),然后正确地浮动它,然后这样做。 margin-right: -1px

    <div style="border:1px solid black; background-color: white;">
        <div id="borderHack"></div>
        Your content here
    </div>
    

    把“hack”元素设计成这样:

    #borderHack {
       float: right;
       margin-right: 1px;
       background-color: white; /*This would have to be the same as the background*/
       height: 3px;
       width: 1px;
    }
    
        2
  •  0
  •   Jan Hančič    15 年前

    您必须将border top设置为none,然后将另一个div放入该container div。然后设置内部div的border top,并将其宽度设置为小于container的宽度。

        3
  •  0
  •   Michael Gattuso    15 年前

    我不相信你能单独用CSS来做这个。

    您可以添加一个内部的DIV,该DIV的背景色与您在开头想要的颜色相同。然后定位并调整内部元素的大小,使其看起来像一个间隙。

        4
  •  0
  •   andho    15 年前

    您可以使用此链接中的说明进行此操作 http://www.css3.info/preview/border-image/

    基本上你要做的就是画一个没有顶角的方框,并将其指定为边框图像。

    编辑: 但是这只在CSS3中可用,并且没有被许多浏览器实现,因此目前其他的答案给出了一个实用的解决方案。

        5
  •  0
  •   jerjer    15 年前

    您也可以尝试这个方法(相对+绝对定位),几乎与float相同:

    <div style="width:400px;height:300px;border-top:1px solid black; border-right:1px solid black;border-bottom:1px solid black;position:relative;">
        some content here
        <div style="width:2px;height:3px;position:absolute;right:0;background:gray;"></div>
    </div>