ページトップへ戻る

DIGITAL DNA
2020.04.20
HTML5 / CSS3 / JavaScript / jQuery

自分用のメモです。




目次
<ul> <li>のヘッダーの点を消す
長い文章の2行目以降を字下げする
【ドロップキャップ】文章の1文字目を大きくする
画像に対して文字列を回り込ませる
div横並びで、中身を縦センタリングする。2行以上にも対応
<hr>タグで高さ1pxの線を描く
レスポンシブで指定の位置で改行する
単語や文の途中で改行させないようにする
横並びのdivを、ウィンドウ幅が狭くなったとき右側を上段に配置する


<ul> <li>のヘッダーの点を消す
list-style: none; を記述することでヘッダーの点を消すことができますが、これだけでは周囲にすきまができてしまうので、margin: 0; padding:0; ですきまを詰めます。


実行結果
  • 1行目
  • 2行目
  • 3行目


CSS,HTML
<style>
.listheader {
	list-style: none;
	margin: 0;
	padding: 0;
}
</style>
<ul class="listheader">
	<li>1行目</li>
	<li>2行目</li>
	<li>3行目</li>
</ul>





長い文章の2行目以降を字下げする

css 2文字目から1字下げるには text-indent を使います。
spanでは字下げされません。div で囲う必要があります。

実行結果
※二人の若い紳士が、すっかりイギリスの兵隊のかたちをして、 ぴかぴかする鉄砲をかついで、白熊のような犬を二疋ひきつれて、 だいぶ山奥の、木の葉のかさかさしたとこを、 こんなことを云いながら、あるいておりました。
※「ぜんたい、ここらの山は怪しからんね。鳥も獣も一疋も居やがらん。なんでも構わないから、早くタンタアーンと、やって見たいもんだなあ。」

CSS,HTML
<style>
.jisage {
	padding-left: 1em;
	text-indent: -1em;
}
</style>
<div class="jisage">
	※二人の若い紳士が、すっかりイギリスの兵隊のかたちをして、
	ぴかぴかする鉄砲をかついで、白熊のような犬を二疋ひきつれて、
	だいぶ山奥の、木の葉のかさかさしたとこを、
	こんなことを云いながら、あるいておりました。
</div>
<div class="jisage">
	※「ぜんたい、ここらの山は怪しからんね。鳥も獣も一疋も居やがらん。
	なんでも構わないから、早くタンタアーンと、やって見たいもんだなあ。」
</div>



補足
li 要素を使えば、2行目以降は自動的にインデント(字下げ)されますが、リスト全体の周囲に隙間ができてしまいます。
その隙間を詰めるために、ul 要素に margin:0 padding:0 のスタイルを適用すると、こんどはヘッダーの「・」が左側に寄りすぎてしまいます。
扱いづらい ul li 要素を使うことを避けて、上記のような字下げのテクニックを使うことがあります。


参考
ul 要素に margin:0 padding:0 を適用した例。
行頭の「・」が左に寄ってしまいます。
  • 二人の若い紳士が、すっかりイギリスの兵隊のかたちをして、ぴかぴかする鉄砲をかついで、白熊のような犬を二疋ひきつれて、
  • だいぶ山奥の、木の葉のかさかさしたとこを、こんなことを云いながら、あるいておりました。
  • 「ぜんたい、ここらの山は怪しからんね。鳥も獣も一疋も居やがらん。なんでも構わないから、早くタンタアーンと、やって見たいもんだなあ。」






【ドロップキャップ】文章の1文字目を大きくする
文字列の1文字目だけ大きくする
1文字目だけ大きくすることを、Adobe In Design などではドロップキャップと呼んでいます。
文字列の1文字目だけ大きくするには、疑似要素 first-letter を使います。


実行結果

二人の若い紳士が、すっかりイギリスの兵隊のかたちをして、ぴかぴかする鉄砲をかついで、白熊のような犬を二疋ひきつれて、 だいぶ山奥の、木の葉のかさかさしたとこを、 こんなことを云いながら、あるいておりました。


CSS,HTML
<style>
	.dropcap p::first-letter{ font-size: 36px; }
</style>

<div class="dropcap">
	<p>二人の若い紳士が、すっかりイギリスの兵隊のかたちをして、
	ぴかぴかする鉄砲をかついで、白熊のような犬を二疋ひきつれて、
	だいぶ山奥の、木の葉のかさかさしたとこを、 こんなことを云いながら、
	あるいておりました。</p>
</div>




1文字目を大きくして、さらに文章を回り込ませる
1文字目を大きくして、さらに文章を回り込ませる
1文字目の周囲に隙間を作るため margin を使って見栄えを整えています。

実行結果

二人の若い紳士が、すっかりイギリスの兵隊のかたちをして、ぴかぴかする鉄砲をかついで、白熊のような犬を二疋ひきつれて、 だいぶ山奥の、木の葉のかさかさしたとこを、こんなことを云いながら、あるいておりました。
「ぜんたい、ここらの山は怪しからんね。鳥も獣も一疋も居やがらん。なんでも構わないから、早くタンタアーンと、やって見たいもんだなあ。」


CSS,HTML
<style>
	.dropcap2 p::first-letter{
		font-size: 36px;
		float:left;
		margin:0px 15px 0px 0px;
	}
</style>
<div class="dropcap2">
	<p>二人の若い紳士が、すっかりイギリスの兵隊のかたちをして、
	ぴかぴかする鉄砲をかついで、白熊のような犬を二疋ひきつれて、
	だいぶ山奥の、木の葉のかさかさしたとこを、こんなことを云いながら、
	あるいておりました。<br>
	「ぜんたい、ここらの山は怪しからんね。鳥も獣も一疋も居やがらん。
	なんでも構わないから、早くタンタアーンと、やって見たいもんだなあ。」</p>
</div>




画像に対して文字列を回り込ませる
画像に対してテキストを回り込ませるには、画像に対して float:left を指定します。


実行結果イメージ
二人の若い紳士が、すっかりイギリスの兵隊のかたちをして、ぴかぴかする鉄砲をかついで、白熊のような犬を二疋ひきつれて、 だいぶ山奥の、木の葉のかさかさしたとこを、こんなことを云いながら、あるいておりました。
「ぜんたい、ここらの山は怪しからんね。鳥も獣も一疋も居やがらん。なんでも構わないから、早くタンタアーンと、やって見たいもんだなあ。」
「鹿の黄いろな横っ腹なんぞに、二三発お見舞もうしたら、ずいぶん痛快だろうねえ。くるくるまわって、それからどたっと倒たおれるだろうねえ。」
それはだいぶの山奥でした。案内してきた専門の鉄砲打ちも、ちょっとまごついて、どこかへ行ってしまったくらいの山奥でした。

CSS,HTML
<style>
	.wrap { float:left; overflow:hidden; }
</style>

<img class="wrap" src="./img/bookimg.jpg">
二人の若い紳士が、すっかりイギリスの兵隊のかたちをして、ぴかぴかする鉄砲をかついで、
白熊のような犬を二疋ひきつれて、だいぶ山奥の、木の葉のかさかさしたとこを、
こんなことを云いながら、あるいておりました。<br>
「ぜんたい、ここらの山は怪しからんね。鳥も獣も一疋も居やがらん。
(以下略)






div横並びで、中身を縦センタリングする。2行以上にも対応
画像や複数行のテキストを縦方向に中央寄せする。

実行結果
1行目
2行目
1行目
2行目
3行目
1行目
2行目
3行目
4行目


CSS,HTML
<style>
	.centerbox {
		display: flex;
		width: 100%;
		align-items: center;
		justify-content:
		center; padding:0px;
		margin:0px;
	}
	.centerbox div {
		float: left;
		width: 33%;
		text-align: center;
		border:1px solid #000000;
	}
</style>

<div class='centerbox'>
	<div>中央1</div>
	<div>中央1<br>中央2</div>
	<div>中央1</div>
</div>

ul li 横並びの例も載せておきます。

CSS,HTML
<style>
.centerbox {
	display: flex;
	width: 100%;
	align-items: center;
	justify-content: center;
	padding: 0px;
	margin: 0px;
}
.centerbox li {
	float: left;
	width: 33%;
	text-align: center;
	list-style: none;
	margin: 0px;
	padding: 0px;
	border: 1px solid #000000;
}
</style>

<ul class='centerbox'>
	<li>中央1</li>
	<li>中央1<br>中央2</li>
	<li>中央1</li>
</ul>





<hr>タグで高さ1pxの線を描く

実行結果



CSS,HTML
<style>
	.thinborder { border:solid #f00; border-width:1px 0 0 0; }
</style>
<hr class="thinborder">








レスポンシブで指定の位置で改行する
実行結果
ブラウザの幅をせばめると句点の位置で改行されます。
このページをスマホなどで閲覧している場合はすでに改行されています。

二人の若い紳士が、
すっかりイギリスの兵隊のかたちをして、
ぴかぴかする鉄砲をかついで、
白熊のような犬を二疋ひきつれて、


CSS,HTML
<style>
	.phone { display: none; }
	@media screen and ( max-width: 767px ){
		.phone { display: block; }
	}
</style>
二人の若い紳士が、<br class="phone">すっかりイギリスの兵隊のかたちをして、<br class="phone">
ぴかぴかする鉄砲をかついで、<br class="phone">白熊のような犬を二疋ひきつれて、<br>






単語や文の途中で改行させないようにする
white-space: nowrap を指定すると、枠の幅を無視して改行せず文章を表示します。


実行結果
実行結果を別ウィンドウで確認


CSS,HTML
<style>
.enter_ctrl { white-space: nowrap }
@media screen and ( max-width: 767px; ){
	.enter_ctrl { display: block; }
}
</style>

二人の若い紳士が、すっかりイギリスの兵隊のかたちをして、<span class="enter_ctrl">
ぴかぴかする鉄砲をかついで、白熊のような犬を二疋ひきつれて、<span class="enter_ctrl">
だいぶ山奥の、木の葉のかさかさしたとこを、<span class="enter_ctrl">
こんなことを云いながら、あるいておりました。<br>





横並びのdivを、ウィンドウ幅が狭くなったとき右側を上段に配置する
実行結果
左側のエリア
右側のエリア
実行結果を別ウィンドウで確認


CSS,HTML
<style>
.img_txt {
	display: flex;
	width: 100%;
	align-items: center;
	justify-content: center;
	margin: 0px;
	padding: 0px;
}
.textbox {
	float: left;
	width: 50%;
	text-align: center;
	border:1px solid #000000;
}
@media screen and ( max-width: 767px ){
	.img_txt {
		display: flex;
		flex-flow: column-reverse nowrap;
	}
	.textbox { width: 100%;
		text-align: center;
		margin: 0px;
		padding: 0px;
	 }
}
</style>
<div class="img_txt">
	<div class="textbox">左側のエリア</div>
	<div class="textbox">右側のエリア</div>
</div>