前提・実現したいこと
あとは十字(T字)を作るだけです。
作戦として、各セルごとに背景色と同じ角丸を枠線と同じ大きさで
描画してから子要素(赤い四角)を描画しようとしました。
発生している問題
↓しかし、実際にはうまくいかず、図のように子要素(赤い四角)がなぜか消えてしまいます。
質問事項
・子要素(赤い四角)はどこに行ってしまったのですか?
・(任意)角丸作戦より簡単な作戦があったら教えてください
ピンとこない説明で申し訳ないのですが、あとのことは文章で説明するよりも
コードを読んでいただいたほうがわかりやすいと思います。
該当のソースコード
↓index.html
html
1<!DOCTYPE html> 2<html lang="en"> 3 4<head> 5 <meta charset="UTF-8"> 6 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 7 <title>Sample</title> 8 <link rel="stylesheet" href="index.css"> 9</head> 10 11<body> 12 <table class="tbl"> 13 <tr> 14 <td class="cell"> 15 <div class="child"></div> 16 </td> 17 <td class="cell"> 18 <div class="child"></div> 19 </td> 20 </tr> 21 <tr> 22 <td class="cell"> 23 <div class="child"></div> 24 </td> 25 <td class="cell"> 26 <div class="child"></div> 27 </td> 28 </tr> 29 </table> 30</body> 31 32</html>
↓index.css
css
1:root { 2 --cell-size: 12vmin; 3} 4 5.tbl { 6 border-collapse: collapse; 7} 8 9.cell { 10 margin: 0; 11 padding: calc(var(--cell-size) * 0.2); 12 position: relative; 13 border: thin solid #333; 14 width: var(--cell-size); 15 height: var(--cell-size); 16} 17 18.cell::before { 19 position: absolute; 20 left: -1px; 21 top: -1px; 22 width: calc(100% + 2px); 23 height: calc(100% + 2px); 24 border-radius: calc(var(--cell-size) * 0.1); 25 content: ""; 26 background: white; /*背景色で上書きすることで十字(T字)を作る*/ 27} 28 29.child { 30 margin: 0; 31 padding: 0; 32 width: 100%; 33 height: 100%; 34 background: red; 35}
試したこと
・z-indexをいじる
・!importantしてみる
・::afterに変えてみる
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/10/10 11:06
2020/10/10 11:12
2020/10/10 11:32
2020/10/10 11:40
2020/10/10 11:50 編集
2020/10/10 12:23