2012/04/01
[CSS] CSSだけでつくる吹き出しデザイン(可変) CSS Speech Bubble
画像を使わずにCSSだけで吹き出しデザインを実装する方法です。基本的な単色パターンで、吹き出しの三角部分を擬似要素を使って実現しています。上下左右への変更が行いやすいように CSSを分割しています。
CSSサポート状況
Demo
下中央
吾輩は猫である。名前はまだ無い。どこで生れたかとんと見当がつかぬ。何でも薄暗いじめじめした所でニャーニャー泣いていた事だけは記憶している。
上中央
吾輩は猫である。名前はまだ無い。どこで生れたかとんと見当がつかぬ。何でも薄暗いじめじめした所でニャーニャー泣いていた事だけは記憶している。
左中央
吾輩は猫である。名前はまだ無い。どこで生れたかとんと見当がつかぬ。何でも薄暗いじめじめした所でニャーニャー泣いていた事だけは記憶している。
右中央
吾輩は猫である。名前はまだ無い。どこで生れたかとんと見当がつかぬ。何でも薄暗いじめじめした所でニャーニャー泣いていた事だけは記憶している。
下三角半分
吾輩は猫である。名前はまだ無い。どこで生れたかとんと見当がつかぬ。何でも薄暗いじめじめした所でニャーニャー泣いていた事だけは記憶している。
上三角半分
吾輩は猫である。名前はまだ無い。どこで生れたかとんと見当がつかぬ。何でも薄暗いじめじめした所でニャーニャー泣いていた事だけは記憶している。
左三角半分
吾輩は猫である。名前はまだ無い。どこで生れたかとんと見当がつかぬ。何でも薄暗いじめじめした所でニャーニャー泣いていた事だけは記憶している。
右三角半分
吾輩は猫である。名前はまだ無い。どこで生れたかとんと見当がつかぬ。何でも薄暗いじめじめした所でニャーニャー泣いていた事だけは記憶している。
HTML
吾輩は猫である。名前はまだ無い。どこで生れたかとんと見当がつかぬ。何でも薄暗いじめじめした所でニャーニャー泣いていた事だけは記憶している。吾輩は猫である。名前はまだ無い。どこで生れたかとんと見当がつかぬ。何でも薄暗いじめじめした所でニャーニャー泣いていた事だけは記憶している。吾輩は猫である。名前はまだ無い。どこで生れたかとんと見当がつかぬ。何でも薄暗いじめじめした所でニャーニャー泣いていた事だけは記憶している。吾輩は猫である。名前はまだ無い。どこで生れたかとんと見当がつかぬ。何でも薄暗いじめじめした所でニャーニャー泣いていた事だけは記憶している。吾輩は猫である。名前はまだ無い。どこで生れたかとんと見当がつかぬ。何でも薄暗いじめじめした所でニャーニャー泣いていた事だけは記憶している。吾輩は猫である。名前はまだ無い。どこで生れたかとんと見当がつかぬ。何でも薄暗いじめじめした所でニャーニャー泣いていた事だけは記憶している。吾輩は猫である。名前はまだ無い。どこで生れたかとんと見当がつかぬ。何でも薄暗いじめじめした所でニャーニャー泣いていた事だけは記憶している。吾輩は猫である。名前はまだ無い。どこで生れたかとんと見当がつかぬ。何でも薄暗いじめじめした所でニャーニャー泣いていた事だけは記憶している。
CSS
/* 共通 */
.bubble {
display:inline-block;
position: relative;
padding:1em;
border-radius:5px;
background: #fff;
}
.bubble:after {
position: absolute;
content: " ";
height: 0;
width: 0;
}
/* 下中央 */
.bubble-bottom:after {
top: 100%;
left: 50%;
border:10px solid transparent;
border-top:10px solid #fff;
margin-left: -10px;
}
/* 上中央 */
.bubble-top:after {
bottom: 100%;
left: 50%;
border:10px solid transparent;
border-bottom:10px solid #fff;
margin-left: -10px;
}
/* 左中央*/
.bubble-left:after {
right: 100%;
top: 50%;
border:10px solid transparent;
border-right:10px solid #fff;
margin-top: -10px;
}
/* 右中央 */
.bubble-right:after {
left: 100%;
top: 50%;
border:10px solid transparent;
border-left:10px solid #fff;
margin-top: -10px;
}
/* 下三角半分 */
.bubble-half-bottom:after {
top: 100%;
left: 5%;
border-top:10px solid #fff;
border-right:10px solid transparent;
}
/* 上三角半分 */
.bubble-half-top:after {
bottom: 100%;
left: 5%;
border-bottom:10px solid #fff;
border-right:10px solid transparent;
}
/* 左三角半分 */
.bubble-half-left:after {
right: 100%;
top: 10%;
border-top:10px solid #fff;
border-left:10px solid transparent;
}
/* 右三角半分 */
.bubble-half-right:after {
left: 100%;
top: 10%;
border-top:10px solid #fff;
border-right:10px solid transparent;
}
0 件のコメント :
コメントを投稿