1. ホーム
  2. html

テーブルのborder-radiusが期待通りに機能しない

2023-09-26 10:46:34

質問

テーブル全体を囲むボーダーの半径を追加したいです。しかし、以下のコードは、FirefoxとGoogle Chromeの最新バージョンの両方で動作しません。

table {
  border-spacing: 0;
  width: 600px;
  margin: 30px;
  border: 1px solid #CCCCCC;
  border-radius: 6px 6px 6px 6px;
  -moz-border-radius: 6px 6px 6px 6px;
  -webkit-border-radius: 6px 6px 6px 6px;
  box-shadow: 0 1px 1px #CCCCCC;
}

table th:first-child {
  border-radius: 6px 0 0 0;
  -moz-border-radius: 6px 0 0 0;
  -webkit-border-radius: 6px 0 0 0;
}

table th:last-child {
  border-radius: 0 6px 0 0;
  -moz-border-radius: 0 6px 0 0;
  -webkit-border-radius: 0 6px 0 0;
}

table td:first-child,
.bordered th:first-child {
  border-left: medium none;
}

table th {
  background-color: #DCE9F9;
  background-image: -moz-linear-gradient(center top, #F8F8F8, #ECECEC);
  background-image: -webkit-gradient(linear, 0 0, 0 bottom, from(#F8F8F8), to(#ECECEC), color-stop(.4, #F8F8F8));
  border-top: medium none;
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.8) inset;
  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
}

table td,
table th {
  border-left: 1px solid #CCCCCC;
  border-top: 1px solid #CCCCCC;
  padding: 10px;
  text-align: left;
}
<table class="bordered">
  <thead>
    <tr>
      <th><label>Labels</label></th>
      <th><label>Labels</label></th>
      <th><label>Labels</label></th>
      <th><label>Labels</label></th>
      <th><label>Labels</label></th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><label>Value</label></td>
      <td><label>Value</label></td>
      <td><label>Value</label></td>
      <td><label>Value</label></td>
      <td><label>Value</label></td>
    </tr>
  </tbody>
</table>

JSFiddle

どのように解決するのですか?

動作はしています。使用するツールの問題です。 正規化されたCSS jsFiddleによって、ブラウザのデフォルトを隠すことによって問題を引き起こしています...。

参照 http://jsfiddle.net/XvdX9/5/

EDITです。

正規化.css jsFiddleのスタイルシートは、命令を追加します。 border-collapse: collapse という命令をすべてのテーブルに追加し、CSS2.1では完全に異なる形でレンダリングします。

2つのモデルの違いは、この他のフィドルで見ることができます。 http://jsfiddle.net/XvdX9/11/ (テーブルとセルの間で何が起こるかを見るために、セルにいくつかの透過性を持たせ、左上のボーダー半径を大きくしています)

HTML テーブルに関する同じ CSS2.1 ページに、ブラウザが分離したボーダー モデルで空のセルをどのように扱うべきか/扱うことができるかについての説明もあります。 border-style: noneborder-style: hidden は、折りたたみボーダーモデルにおいて、テーブル、行、およびセル要素の両方が同じボーダー上で3つの異なるスタイルを定義する場合、どのように幅を計算し、どのボーダーを表示すべきかを示しています。