代码之家  ›  专栏  ›  技术社区  ›  DisgruntledGoat

是否可以模仿CSS脊线边框,但使用自定义颜色?

  •  0
  • DisgruntledGoat  · 技术社区  · 15 年前

    我基本上希望有一个“脊”风格的边界,但与自定义颜色。用 border-style: ridge 似乎你不能输入不同的颜色,浏览器只使用比指定颜色稍亮和略暗的颜色。

    我目前的解决方案是这样,但由于额外的 <div>

    <div id="header">
      <!-- block with border-bottom set to `1px solid #2e3436`-->
    </div>
    <div style="height: 1px; background-color: #fbe995;"></div>
    

    下面的下一项不能将其上边框设置为该颜色(它有自己的样式,并且是独立的),所以这个想法已经过时了。还有什么我可以尝试的吗?

    4 回复  |  直到 10 年前
        1
  •  1
  •   mercator    15 年前

    您的示例似乎建议您创建一条脊线作为头和其余部分之间的分隔符,而不是元素周围的脊线边界。你为什么不用 hr 因为这正是它的目的?

    然后你可以给它一个边框,在不同的边上设置你自己的颜色。

        2
  •  2
  •   Nick Bastin    15 年前

    不符合CSS 3规范(第8.5.3节):

    为值绘制的边框颜色 “凹槽”、“脊”、“嵌入”和 “开始”取决于元素的 边框颜色属性,但UAS可以 选择自己的算法 计算实际使用的颜色。

    从技术上讲,我认为“选择他们自己的算法”可能涉及允许开发人员设置它们,但此时似乎没有用户代理这样做。当然,即使他们这样做了,您也只有一个渲染引擎的解决方案。

        3
  •  1
  •   DisgruntledGoat    10 年前

    没有正式的方法可以做到这一点,但你可能会模仿这种效果。脊状边框实际上只是一个插入边框,它本身周围有一个起始边框(反过来,它只是一个纯色边框,左/上/下/右的边框颜色略有不同)。

    沿着这些线的某些东西应该能让你得到一个你想要的,或者你正在寻找的东西的非常好的近似值。

     .inset{
          margin:0px;
          border: 1px inset #abc;
     }
     .outset{
          padding:0px;
          border:1px outset #cba;
     }
    
    <div class='outset'>
         <div class='inset'>
              content goes here
         </div>
    </div>
    
        4
  •  0
  •   Ewan Todd    15 年前
    <style>
    .a
    {
            border: solid yellow 2px;
            border-top-color:red;
            border-left-color:red;
    
    }
    .b
    {
            border: solid red 2px;
            border-top-color:yellow;
            border-left-color:yellow;
    }
    </style>
    <div class='a'>
      <div class='b'>
            some text
      </div>
    </div>