前提・実現したいこと
CSSを使用して下向きの吹き出しを作りたいです。
調べながら作っていたのですが、うまくいきません。問題は以下の2点です。
発生している問題・エラーメッセージ
- .rectangle部分でleft:50%としているのに、
実際Chromeで見ると、やや右に寄っている。
leftが50%ならばrightも50%となって中心に寄るのではないのでしょうか?
- 吹き出しの三角形部分が表示されない。
三角形部分のコードを以下のように書いた理由を説明すると、
(1)after
四角形の下に置いてはみ出させるためにbeforeではなくafterにした。
(2)bottom
afterの指定があることを考え、四角形のすぐ下から始めるために0。
(3)right
親要素のrectangleの真ん中から三角形を出したいため。
(4)border, border-top
上の三角形のみに色を付ける。それ以外は透明に。
何か認識に間違いがある箇所があれば教えていただきたいです。
該当のソースコード
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <link rel="stylesheet" href="style.css"> <title>ヘッダー</title> <style> body{ margin:0; padding:0; width:100%; height:100%; } /*ここからはヘッダーのためのコード*/ .all{ position:fixed; width:100%; height:120px; border-radius:10% } .backColor{ background-color:#fff; box-shadow: 0 0 3px; padding: 10px 10px 10px; height: 120px; width:100%; } .line{ border: 5px solid #F15356; height:100px; width:100%; border-radius:10% } /*ここまでヘッダーのためのコード*/ /*吹き出しの四角部分*/ .rectangle{ position:relative; display:inline-block; background-color:#F15356; color:white; padding:10px; border-radius:3px; top:200px; left:50%; } /*吹き出しの三角形部分*/ .restangle:after{ content=""; position:absolute; width:0; height:0; bottom:0px; right:50% border: 20px solid transparent; border-top: 20px solid #F15356; } *,*:before, *:after{ box-sizing:border-box; } </style> </head> <body> <div class="all"> <div class="backColor"> <div class="line"> </div> </div> </div> <p class="rectangle">こんにちは</p> </body> </html>
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/06/05 15:56
2018/06/05 16:00
2018/06/05 16:06
2018/06/06 00:23
2018/06/06 08:32