質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

2回答

842閲覧

<table>の角丸デザインについてFirefoxのみ背景の挙動が違う

docodemodoor

総合スコア1

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2020/05/20 13:55

前提・実現したいこと

下記のソースコードにおいて、Chrome・Edge・IEでは、<tbody>の背景が、
角丸にした<td>の枠線の外側に表示されず理想通りの結果になっております。

一方でFirefoxの場合のみ<tbody>の背景が枠線の外側に残っており不格好になってしまいます。

こちらについて現在の<table>を利用するレイアウトを変えずに、解決する方法はないでしょうか。

FirefoxChrome

該当のソースコード

html

1<table> 2<tbody style="background-color: #000;border: 2px solid #fff;border-radius: 10px;"> 3<td>content</td> 4<td style="border: 2px solid #fff;border-radius: 10px;">radius-content</td> 5</tbody> 6</table>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

こちらについて現在の<table>を利用するレイアウトを変えずに、解決する方法はないでしょうか。

残念ながら、不可能です。以下のように、<td>の中に1つ<div><span><a>などを追加する形が、いまあるソースコードに一番近い形での実装にはなると思います。
borderではなく、box-shadowを使用している点はご注意ください。

HTML

1<table> 2 <tbody style="border: 2px solid #fff;border-radius: 10px;"> 3 <td style="background-color: #000;">content</td> 4 <td><div style="background-color: #000; border-radius: 10px; box: 0 0 0 2px #fff;">radius-content</div></td> 5 </tbody> 6</table>

SVGを用いたり、<canvas>とJavaScriptを組み合わせたりするような方法もあるかもしれません。もしくはFirefoxを作っている「Mozilla Corporation」という会社にお願いしてみる..、というのもあり得るかもしれません。いずれにしても<td>のなかに<div>などを1つ追加するだけの方が楽だと思います。


kei344さんのご指摘の通りstyle=""ではなく、<style>...</style>に書いたり、CSSファイルに分けたりしたほうがいいので、そちらの書き方も書いておきます。

HTML

1<table> 2 <tbody> 3 <!-- trがないので追加 --> 4 <tr> 5 <td>content</td> 6 <td><div class="xxxx">radius-content</div></td> 7 </tr> 8 </tbody> 9</table> 10 11<!-- CSSファイルに記述すべきですが、せめてstyle要素に書いたほうがわかりやすいです。 --> 12<style> 13 /* tr td:nth-child(1) */ 14 tr td:first-child { 15 background-color: #000; 16 } 17 /* tr td:nth-child(2) */ 18 /* tr td:last-child > div */ 19 .xxxx { 20 background-color: #000; 21 border-radius: 10px; 22 box: 0 0 0 2px #fff; 23 } 24</style>

投稿2020/05/21 00:09

編集2020/05/21 05:17
new1ro

総合スコア4528

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

style属性でなく、style要素にしたほうが記述は減ると思います。

HTML

1<table> 2<tbody style="border: 2px solid #fff;border-radius: 10px;"> 3<td style="background-color: #000;">content</td> 4<td style="background-color: #000;border: 2px solid #fff;border-radius: 10px;">radius-content</td> 5</tbody> 6</table>

投稿2020/05/20 14:01

kei344

総合スコア69606

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

docodemodoor

2020/05/20 14:19 編集

ご回答ありがとうございます。 ソースコードの簡略化のためにstyle属性で記載をしております。 情報小出しにしてしまい申し訳ないですが、実際は下記のようなコードになっており linear-gradientを左と右で揃えたいため、<tbody>にbackgroundを設定しております <table> <tbody style="background: linear-gradient(to bottom, #ff0000 0%, #ff0000 30%, #0000ff 50%, #0000ff 100%);border: 2px solid #fff;border-radius: 10px;"> <tr> <td>content</td> <td rowspan="2" style="border: 2px solid #fff;border-radius: 10px;">radius-content</td></tr> <tr><td>f</td></tr> </tbody> </table> backgroundを<tbody>に設定した状態で、Firefoxの挙動を修正することはできないでしょうか・・・・。
kei344

2020/05/20 14:30

ソースコードが複雑になるので、style要素にしたほうがよいですよ。 「実際のコード」とやらも簡略化されていて、何か対策を回答するたびにゴール地点がずれそうなのでこのあたりで回答を控えますが、「Firefoxの挙動を修正」はFirefox自体のコードに手を入れないと無理な話です。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問