before afterタグで『』カギカッコなどの記号【】をCSSで表現する

【拡大する】などのアンカー付きの文章に対して出来れば【】なしでCSSのみで装飾したい場合、cssのcontentタグです。

<span class=”kakko”>拡大する</span>

 

.kakko {
position: relative;
-webkit-box-sizing: border-box;
box-sizing: border-box;
padding-left:1em;
}
.kakko::before,
.kakko::after {
position: absolute;
content: ”;
width: 20px;
height: 20px;
-webkit-box-sizing: border-box;
box-sizing: border-box;
}
.kakko::before {
top: 0;
left: 0;
content:”【”;
}
.kakko::after {
top: 0;
left: 5em;
content:”】”;
}

[css]positionで中央位置に置く

レスポンシブサイト制作の際に角丸ボタンの配置がPCサイトではabsoluteで右上に設定しているのに、スマホサイトではabsoluteで下部中央だったのでちょっと悩みました。

そこでスマホサイトの角丸ボタンのCSS設定したメモ。

 #news_link {position:absolute; top:auto; right:0; bottom:30px; left:0; width:100%; text-align:center;}

#news_link a {     border-radius: 40px 40px 40px 40px;    display: block;    border: 1px solid #999;    width: 200px;    padding: 7px 0;    text-align: center;    font-size: 15px; margin:0 auto;}

ここでのミソは右と左のabsoluteが0であること(もちろん上下の中央をとりたいならtopとbottomを0にする)。
そしてmargin:autoをとっていること。

個人的にはあまり使うことない手法だったので、へ~と思った次第でした。
transform: translateで画面中央に配置するやり方もありますヨ。

スマホサイト作りに大活躍!borderやpaddingを内側に入れるCSS

スマホサイトの需要が近年伸びてきて、今はアクセス解析すると大半がスマホからのアクセスだったりします。
いまや50-60%はどのサイトもスマホやらの閲覧だと実感しています。
なのでPCサイトの制作依頼が来たときはスマホサイトの制作の重要性についてお話しています。

スマホサイト制作はPCサイトをレスポンシブ化することが多く、数値がpx指定から%指定になることが多いです。
なので%は全部あわせて100%なのにborderが1pxあってオーバーしちゃう…なんて困ったときに頼れるのがpaddingやborderなどの内側の要素を含めて計算してくれるCSS「box-sizing」です。

box-sizing: border-box;

これを要素に入れるだけでpaddingとborderを幅と高さに含んでくれます。

content-box:パディングとボーダーを幅と高さに含めない(初期値)
border-box:パディングとボーダーを幅と高さに含める
inherit:親要素の値を継承する

初期値・適用対象・値の継承

初期値:content-box
適用対象:幅、または、高さを持つすべての要素
値の継承:しない

サンプル

ちなみにこちらの画像並びのリスト。CSSとHTMLはこんな風になっています。

HTML

<ul id=”clinic_photo”>
<li><a href=”01shomen.jpg” tit=”外観”><img src=”photo01.jpg”><br>外観</a></li>
<li><a href=”02ukestuke.jpg” tit=”受付”><img src=”photo02.jpg”><br>受付</a></li>
<li><a href=”03machiai01.jpg” tit=”待合室”><img src=”photo03.jpg”><br>待合室</a></li>
<li><a href=”04machiai02.jpg” tit=”待合室”><img src=”photo04.jpg”><br>待合室</a></li>
<li><a href=”05shisastu01.jpg” tit=”第1診察室”><img src=”photo05.jpg”><br>第1診察室</a></li>
<li><a href=”06shinsatsu02.jpg” tit=”第2診察室”><img src=”photo06.jpg”><br>第2診察室</a></li>
<li><a href=”07kensashochi.jpg” tit=”検査・処置室”><img src=”photo07.jpg”><br>検査・処置室</a></li>
<li><a href=”08shujutsu.jpg” tit=”手術室”><img src=”photo08.jpg”><br>手術室</a></li>
<li><a href=”09nyuin.jpg” tit=”入院施設”><img src=”photo09.jpg”><br>入院施設</a></li>
</ul>

CSS

#clinic_photo li {
padding: 2%;
border: 1px solid #ccc;
width: 48%;
display:inline-block;
margin: 1%;
box-sizing: border-box;
}

50%で横並びさせたいと思って設定しています。赤字のpaddingとborderを数値として考えなくていいので横幅48%+margin(1%+1%)=50%で計算上も非常に楽です。

背景色だけ透過して中の要素(文字とか)は透過させないCSS記述

背景色をrgbaで指定すると透過度合いも調節できます。

rgbaとは

rgbはWEBデザイナーならよく眼にする色の三要素 RGB(レッド・グリーン・ブルー)。

aはalpha(アルファ)透過具合の調整できる濃度。

background-color:rgba(110,36,0,0.5);

0.5=透過具合50%
透過具合はこの数字が大きくなると透過されなくなるよ。
1は透過0%。0は透過100%。

[CSS]tableの装飾簡単コピペソース

コピペするだけでtableの装飾が出来るように置いておきます。
th部分だけ背景色がグレーです。

 

.table01 {
border-collapse: collapse;
margin-bottom:20px;
width:100%;
}
.table01 th,.table01 td {
padding: 10px;
border: 1px solid #ccc;
}
.table01 th {
font-weight: bold;
background:#ecebea;
}

コピペで簡単common.cssで使うmargin,padding関連

よくcommon.cssで使うmarginとpaddingのCSS箇所です。

 

/* margin-bottom */
.mb10 {margin-bottom: 10px;}
.mb15 {margin-bottom: 15px;}
.mb20 {margin-bottom: 20px;}
.mb25 {margin-bottom: 25px;}
.mb30 {margin-bottom: 30px;}
.mb35 {margin-bottom: 35px;}
.mb40 {margin-bottom: 40px;}
.mb45 {margin-bottom: 45px;}
.mb50 {margin-bottom: 50px;}

/* padding-bottom */
.pb10 {padding-bottom: 10px;}
.pb15 {padding-bottom: 15px;}
.pb20 {padding-bottom: 20px;}
.pb25 {padding-bottom: 25px;}
.pb30 {padding-bottom: 30px;}
.pb35 {padding-bottom: 35px;}
.pb40 {padding-bottom: 40px;}
.pb45 {padding-bottom: 45px;}
.pb50 {padding-bottom: 50px;}

text-decoration:underlineとborder-bottom下線はどっちがいいの?

CSSで装飾するときに同じ効果を表示できるタグがあるのですがどっちがいいのかという話。

調べてみたところ「text-decoration:underlineがいい」ということが分かりました。

理由はfontの種類(主にメイリオの場合)によってborder-bottomは変な余白が出てしまうためということでした。

下線に関してはtext-decoration:underlineは万能!ということで!

[CSS]リストに矢印装飾を:before要素CSSだけで表現

HTML

<ul class=”arrow”>
<li><a href=”#”>事務所のご案内</a></li>
<li><a href=”#”>行政書士プロフィールはこちら</a></li>
</ul>

CSS

.arrow li {
position: relative;
display: inline-block;
padding-left: 12px;
}
.arrow li:before {
content: ”;
width: 0;
height: 0;
border: solid 4px transparent;
border-left: solid 5px #014eb4;
position: absolute;
top: 50%;
left: 0;
margin-top: -4px;
}