更有效的方法来自定义html中的边框

时间:2014-01-15 23:48:21

标签: html css html-table border

我正在寻求更好的方式来安排我的边界。 目前我有类似的东西,但我觉得必须有一些更好,更快的解决方案。

我的代码:

<style>
td.left{
border-top-style:solid;
border-left-style:solid;
border-bottom-style:solid;
border-color: black;
border-width: 1px;
}

td.right{
border-top-style:solid;
border-right-style:solid;
border-bottom-style:solid;
border-color: black;
border-width: 1px;
}

td.updown{
border-top-style:solid;
border-bottom-style:solid;
border-color: black;
border-width: 1px;
}

td.left2{
border-left-style:solid;
border-bottom-style:solid;
border-color: black;
border-width: 1px;
}

td.right2{
border-right-style:solid;
border-bottom-style:solid;
border-color: black;
border-width: 1px;
}

td.updown2{
border-bottom-style:solid;
border-color: black;
border-width: 1px;
}

td.finish{
border-bottom-style: solid;
border-left-style: solid;
border-right-style: solid;
border-color: black;
border-width: 1px;
}

table {
border-style:none; 
padding:1px; 
margin:0px; 
border-spacing: 0px; 
border: 0pxborder: ;
width:850px;
}
</style>

我创建了每个特定方面的类,以便为每个不同的目的显示。

这是代码的正文部分,我使用了第一行的“left”类和第二行的“left2”,这是因为如果我使用“left”的两行,那么第二行会有更粗的行在第1行和第2行之间。 在这个表中,我想在一个特定的列之间做一行消失或出现,但很难找到更短的代码。

<table>
  <tbody>
    <tr>
      <td width="149" class="left"> For testing 1</td>
      <td width="312" class="updown"><input type="text" /></td>
      <td width="172" class="left"> For testing 2</td>
      <td width="204" class="right"> <input type="text" /></td>
    </tr>
    <tr>
      <td class="left2">For testing 3</td>
      <td class="right2" colspan="3"><input type="text" /></td>
    </tr>
    <tr>
      <td class="left2" colspan="2">For testing 4</td>
      <td class="finish" colspan="2"><input type="text" /></td>
    </tr>
  </tbody>
</table>

2 个答案:

答案 0 :(得分:0)

你能做的是:

td { 
    border:1px solid black; 
}

td.left{ 
    border-right-style:none; 
}
td.right{ 
    border-left:none; 
}
td.updown{ 
    border-left:none; 
    border-right:none; 
}
td.left2{ 
    border-top:none; 
    border-right:none; 
}
td.right2{ 
    border-left:none; 
    border-top:none; 
}
td.updown2{ 
    border-top:none; 
    border-left:none; 
    border-right:none; 
}
td.finish{ 
    border-top:none; 
}

请参阅:http://jsfiddle.net/Cuyxh/

但是,我建议在HTML中为每个边框使用类,以获得更加模块化的方法。

示例:

b-left, b-right, b-top, b-down { 
    border-color:black;
    border-width:1px;
}
b-left { 
    border-left-style:solid; 
}
b-top { 
    border-top-style:solid; 
}
b-right { 
    border-right-style:solid; 
}
b-bottom { 
    border-bottom-style:solid; 
}

然后将这些类添加到表格单元格中。例如:

<td width="149" class="b-left b-top">For testing 1</td>

答案 1 :(得分:0)

这是一个使用border-collapse: collapse;

的字符保存解决方案

<强> LIVE DEMO

HTML:

<table>
  <tbody>
    <tr>
      <td><span>For testing 1</span><input type="text" /></td>
      <td><span>For testing 2</span><input type="text" /></td>
    </tr>
    <tr>
      <td colspan="2"><span>For testing 3</span><input type="text" /></td>
    </tr>
    <tr>
      <td><span>For testing 4</span></td>
      <td><input type="text" /></td>
    </tr>
  </tbody>
</table>

CSS:

td {
border: 1px solid black;
border-collapse: collapse;
}

table {
border: 1px solid black;
border-collapse: collapse;
width: 850px;
}

span {
float: left;
width: 150px;
}