Border Height on CSS

前端 未结 12 999
既然无缘
既然无缘 2020-12-12 21:55

I have a table TD and on the right of it I want to add a 1 pixel border, so I\'ve done this:

table td {
    border-right:1px solid #000;
}

相关标签:
12条回答
  • 2020-12-12 22:20

    No, there isn't. The border will always be as tall as the element.

    You can achieve the same effect by wrapping the contents of the cell in a <span>, and applying height/border styles to that. Or by drawing a short vertical line in an 1 pixel wide PNG which is the correct height, and applying it as a background to the cell:

    background:url(line.png) bottom right no-repeat;
    
    0 讨论(0)
  • 2020-12-12 22:24

    This will add a centered border to the left of the cell that is 80% the height of the cell. You can reference the full border-image documentation here.

    table td {
        border-image: linear-gradient(transparent 10%, blue 10% 90%, transparent 90%) 0 0 0 1 / 3px;
    }
    
    0 讨论(0)
  • 2020-12-12 22:25
    table {
     border-spacing: 10px 0px;
    }
    
    .rightborder {
    border-right: 1px solid #fff;
    }
    

    Then with your code you can:

    <td class="rightborder">whatever</td>
    

    Hope that helps!

    0 讨论(0)
  • 2020-12-12 22:26
    table td {
        border-right:1px solid #000;
        height: 100%;
    }
    

    Just you add height under the border property.

    0 讨论(0)
  • 2020-12-12 22:34

    For td elements line-height will successfully allow you to resize the border-height as SPrince mentioned.

    For other elements such as list items, you can control the border height with line-height and the height of the actual element with margin-top and margin-bottom.

    Here is a working example of both: http://jsfiddle.net/byronj/gLcqu6mg/

    An example with list items:

    li { 
        list-style: none; 
        padding: 0 10px; 
        display: inline-block;
        border-right: 1px solid #000; 
        line-height: 5px; 
        margin: 20px 0; 
    }
    
    <ul>
        <li>cats</li>
        <li>dogs</li>
        <li>birds</li>
        <li>swine!</li>
    </ul>
    
    0 讨论(0)
  • 2020-12-12 22:36

    Just like everyone else said, you can't control border height. But there are workarounds, here's what I do:

    table {
      position: relative;
    }
    
    table::before { /* ::after works too */
      content: "";
      position: absolute;
      right: 0; /* Change direction for a different side*/
      z-index: 100; 
      width: 3px; /* Thickness */
      height: 10px;
      background: #555; /* Color */
    }
    

    You can set height to inherit for the height of the table or calc(inherit - 2px) for a 2px smaller border. Remember, inherit has no effect when the table height isn't set.

    Use height: 50% for half a border.

    Demo

    0 讨论(0)
提交回复
热议问题