カラムレイアウトの設計演習 続パターンC

検討

カラムレイアウトの設計演習 パターンC の続き

レイアウトと素材

f:id:fujiwarashinichi:20140322133343g:plain f:id:fujiwarashinichi:20140322125426g:plain

もっとも苦労したところ

html

<div class="post">
  <a href="#">
    <div class="date">
      <span>1</span>AUG
    </div>
    <h2>風車と風の関係</h2>
    <p>
      <img src="img/windmill_thumb.jpg" alt="">本文
    </p>
    <p class="more">READ MORE</p>
  </a>
</div>
<!--/.post-->

css

/*.post*/
.post{
    border:1px solid #aaa;
	margin-bottom:20px;
}
.post a{
	color:#000;
	display:block;
	overflow:hidden;
	padding:10px;
}
.post a:hover{
	background:#ddd;
	background: -webkit-gradient(linear,left top,left bottom,from(#fff),to(#ddd));
	background: -webkit-linear-gradient(#fff 0%,#ddd 100%);
	background: -moz-linear-gradient(#fff 0%,#ddd 100%);
	background: -o-linear-gradient(#fff 0%,#ddd 100%);
	background: -ms-linear-gradient(#fff 0%,#ddd 100%);
	background: linear-gradient(#fff 0%,#ddd 100%);
}
.post .date{
	background:#537685;
	color:#fff;
	font-weight:bold;
	font-family:
	Helvetica,Arial,sans-serif;
	text-align:center;
	padding:10px 15px;
	float:left;
	font-size:14px;
}
.post h2{
	border-bottom:1px solid #aaa;
	margin-bottom:20px;
	line-height:1.6;
	padding:5px 0 1px 70px;
	font-size:22px;
}
.post .date span{
	display:block;
	font-size:20px;
}
.post p img{
	float:left;
	clear:left;
	margin-right:10px;
}
.post p{
	clear:left;
	font-size:14px;
	line-height:1.6;
}
.post .more{
	background:url(img/more_gray.png) no-repeat 99% center;
	text-align:right;
	padding-right:36px;
	color:#888;
	clear:none;
	font-size:16px;
}

floatとclear

1..date をfloat:left したところ。img(float:left済)の左に空きができる。

f:id:fujiwarashinichi:20140322180638p:plain

2.img clear:left で.dateのフロートの影響を絶つとimgが左に寄れる。まだ本文(p)には.dateのフロートが効いているので隙間から回りこんでしまう。

f:id:fujiwarashinichi:20140322180708p:plain

3..post p に clear:left でフロートの影響が排除され、imgの右へ。imgと「本文」は同じ「pブロック」に属しているが、「READ MORE」は別の「pブロック」だから改行され、一段下へ。

f:id:fujiwarashinichi:20140322180746p:plain

4. p.more に clear:noneにすることでimgのフロートが効いてimgの右に回りこむ。

f:id:fujiwarashinichi:20140322180827p:plain

overflow:hidden

子要素がフロートして高さがなくなっているので親要素にoverflow:hiddenで高さを持たせる。しかし「.post」と「.post a」、どちらにつけるかで結果が変わる。

f:id:fujiwarashinichi:20140322175819g:plain

ミス防止

文章を入れるのは最後にする。そうしないと不具合が出た際に問題箇所を探すのに苦労する。

f:id:fujiwarashinichi:20140322180854p:plain