html&css」カテゴリーアーカイブ

flexboxでヘッダーフッターを固定

意外としっかり覚えてないんだよな。

<div class="container">
  <header>ヘッダーだよ</header> 
  <main> 
    こ<br>こ<br>に<br>メ<br>イ<br>ン<br>コ<br>ン<br>テ<br>ン<br>ツ<br>を<br>か<br>く<br>よ<br>!<br> は<br>み<br>だ<br>し<br>て<br>も<br>ス<br>ク<br>ロ<br>ー<br>ル<br>し<br>て<br>く<br>れ<br>る<br>よ<br>!<br>
  </main>
  <footer>フッターだよ</footer>
</div>
@charset "utf-8";
body {
  margin: 0;
  overflow: hidden;
}
.container {
  display: flex;
  flex-direction: column;
  height: 100vh;
  width: 100vw;
}
header {
  background-color: rgba(245, 178, 177, 0.5);
}
main {
  flex: 1;
  background-color: rgba(255, 253, 237, 1);
  overflow-y: scroll;
}
footer {
  background-color: rgba(201, 187, 155, 0.5);
}

ヘッダーがStickyに差し替わるリスト

スクロールすると見出しが固定されて、次の見出しが来るとそれに差し変わる便利なコードです。

<div class="head-kotei">
  <h1>
    内容<!--<a href="#link">リンク遷移位置の確認用</a>-->
  </h1>
  <h2>
    内容
  </h2>
</div>
<h2 class="sticky-menu">1</h2>
<p>
  この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大き
</p>
<h2 class="sticky-menu">2</h2>
<p>
  この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大き
</p>
<h2 class="sticky-menu">3</h2>
<p id="link">
  <!--<span style="color:red;weight:bold;">この文章はダミーです。※リンクジャンプの確認(多分ヘッダーで隠れる)※</span>-->この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大き
</p>
<h2 class="sticky-menu">4</h2>
<p>
  この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大き
</p>
<h2 class="sticky-menu">5</h2>
<p>
  この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大きさ、量、字間、行間等を確認するために入れています。この文章はダミーです。文字の大き
</p>
body,h1,h2 {
	padding: 0;
	margin: 0;
}

.sticky-menu {
	position: -webkit-sticky;
	position: sticky;
	top: 100;
	background-color: lightblue;
}

.head-kotei {
	background-color: #ccc;
	height:100px;
	position: sticky;
	top: 0;
}

p {
	width: 200px;
}

テーブルの横スクロール(こっちの方が楽では?

前にこんな記事(テーブルを横スクロールさせるよ )書きましたが、こっちの方がすごく分かりやすいし楽では?????な気がします。レイアウト複雑じゃないサイトとかには有用な感じがします。

.table-scroll {/*横スクロール処理*/
  overflow: auto;
  white-space: nowrap;
}
.table-scroll::-webkit-scrollbar {
  height: 5px;
}
.table-scroll::-webkit-scrollbar-track {
  background: #333;
}
.table-scroll::-webkit-scrollbar-thumb {
  background: #999;
}

テーブルをレスポンシブにする

ただthとtdを立て並びにするだけです。

.sptable{/*SP用テーブル*/
  width: 100%;
}

table.sptable th,
table.sptable td {/*SP用テーブル*/
  display: block;
  width: 100%;
}

flexboxを使ったレスポンシブ段組み

意外とこういうテンプレート作っておくと便利かもしれないということ。

基本のhtml

col_* の * に2~4の数字を入れるよ。

<div class="col_*">
<div>
ここに内容
</div>
<div>
ここに内容
</div>
<div>
ここに内容
</div>
<div>
ここに内容
</div>
<div>
ここに内容
</div>
<div>
ここに内容
</div>
</div>

2カラム

/* 2カラム */
*, *:before, *:after {
box-sizing: border-box;
}
.col_2{
width: 100%;
display: flex;
display: -ms-flexbox; /* IE10 */
flex-wrap: wrap;
-ms-flex-wrap: wrap; /* IE10 */
background-color: #005693; /* 背景の色 */
color: #FFF; /* 文字の色 */
text-align: center; /* 内容は中央配置 */
}
.col_2 > div{
width: 50%;
padding: 10px;
}
@media screen and (max-width: 640px) {
.col_2 > div{
width: 100%;
}
}

3カラム

/* 3カラム */
*, *:before, *:after {
box-sizing: border-box;
}
.col_3{
width: 100%;
display: flex;
display: -ms-flexbox; /* IE10 */
flex-wrap: wrap;
-ms-flex-wrap: wrap; /* IE10 */
background-color: #005693; /* 背景の色 */
color: #FFF; /* 文字の色 */
text-align: center; /* 内容は中央配置 */
}
.col_3 > div{
width: 33.33333%;
padding: 10px;
}
@media screen and (max-width: 1090px) {
.col_3 > div{
width: 50%;
}
}
@media screen and (max-width: 480px) {
.col_3 > div{
width: 100%;
}
}

4カラム

/* 4カラム */
*, *:before, *:after {
box-sizing: border-box;
}
.col_4{
width: 100%;
display: flex;
display: -ms-flexbox; /* IE10 */
flex-wrap: wrap;
-ms-flex-wrap: wrap; /* IE10 */
background-color: #005693; /* 背景の色 */
color: #FFF; /* 文字の色 */
text-align: center; /* 内容は中央配置 */
}
.col_4 > div{
width: 25%;
padding: 10px;
}
@media screen and (max-width: 1090px) {
.col_4 > div{
width: 33.33333%;
}
}
@media screen and (max-width: 480px) {
.col_4 > div{
width: 50%;
}
}

印刷時にのみ有効になるスタイル

印刷時に、ヘッダーをfixedにしてたりすると全部の印刷ページにヘッダーが被って嫌だなってことありますよね。
そういう時にmedia printの中に印刷時にのみ有効にしたいスタイルを記述すると良い感じです。

@media print {
#detail_header {
position: static;
}
}

テーブルを横スクロールさせるよ

色々やり方はありそうでしたが、これが既存のテーブルのスタイルやhtmlを編集せずにシンプルに実装できそうで良かったです。

<div class="sc-table">
<table>
<tbody>
<tr>
<th>・・・</th>
<th>・・・</th>
<th>・・・</th>
</tr>
<tr>
<td>・・・</td>
<td>・・・</td>
<td>・・・</td>
</tr>
<tr>
<td>・・・</td>
<td>・・・</td>
<td>・・・</td>
</tr>
</tbody>
</table>
</div>
.sc-table {
overflow-x: scroll;
white-space: nowrap;
}
/*古いブラウザに対応したい場合*/
.sc-table {
overflow: scroll;
white-space: nowrap;
}

これはすごいテーブル

すごい。
pecopla.net/web-column/table-design

<table>
<thead>
<tr>
<td class="non"></td>
<th scope="col">内容</th>
<th scope="col">価格(月額)</th>
</tr>
</thead>
<tbody>
<tr>
<th>ベーシックプラン</th>
<td data-label="内容" class="txt">はじめての方向け。ベーシックなお試しプラン</td>
<td data-label="価格" class="price">¥3,000</td>
</tr>
<tr>
<th>カスタムプラン</th>
<td data-label="内容" class="txt">必要なものだけ揃えられるカスタムプラン</td>
<td data-label="価格"class="price">¥4,000</td>
</tr>
<tr>
<th>プレミアムプラン</th>
<td data-label="内容" class="txt">全ておまかせのプレミアムプラン</td>
<td data-label="価格"class="price">¥10,000</td>
</tr>
</tbody>
</table>
body {
font-family: "Open Sans", sans-serif;
line-height: 1.25;
}

table {
border-collapse: collapse;
margin: 0 auto;
padding: 0;
width: 650px;
table-layout: fixed;
}

table tr {
background-color: #e6f2f5;
padding: .35em;
border-bottom: 2px solid #fff;
}
table th,
table td {
padding: 1em 10px 1em 1em;
border-right: 2px solid #fff;
}
table th {
font-size: .85em;
}
table thead tr{
background-color: #167F92;
color:#fff;
}
table tbody th {
background: #78bbc7;
color: #fff;
}
.txt{
text-align: left;
font-size: .85em;
}
.price{
text-align: right;
color: #167F92;
font-weight: bold;
}
.non{
background:#fff
}
@media screen and (max-width: 600px) {
table {
border: 0;
width:100%
}
table th{
background-color: #167F92;
display: block;
border-right: none;
}
table thead {
border: none;
clip: rect(0 0 0 0);
height: 1px;
margin: -1px;
overflow: hidden;
padding: 0;
position: absolute;
width: 1px;
}
table tr {
display: block;
margin-bottom: .625em;
}
table td {
border-bottom: 1px solid #bbb;
display: block;
font-size: .8em;
text-align: right;
position: relative;
padding: .625em .625em .625em 4em;
border-right: none;
}

table td::before {
content: attr(data-label);
font-weight: bold;
position: absolute;
left: 10px;
color: #167F92;
}
table td:last-child {
border-bottom: 0;
}
table tbody th {
color: #fff;
}
}

リンクの範囲を親要素のサイズにする

aタグに下記を追加するだけ!

display: block;

使いまわししまくると親要素サイズにする必要がないリンクもそうなるから気を付けて

iPhoneでvideoタグが再生ボタンしか出ないときの対処法

根本的解決じゃない。

videoタグで動画読み込んだら何故かこんな風に再生ボタンしかでない・・なんで・・となったときの対処法

結果こうしました。

<video controls>
<source src="video/sample.mp4#t=0.01" type="video/mp4">
<p>※お使いのブラウザは動画再生に対応しておりません。</p>
</video>

ようするにこういうことです。
iPhoneだとタップすると再生はするのに・・ってことだったので既に再生されているテイにするために開始時間を0.01で設定しました。
autoplayを入れるとちゃんと動くのは既に再生開始されているからだったのだと思います。

<source src="動画ファイル.mp4#t=[開始時間],[終了時間]" type='video/mp4'>

参考

src=”動画ファイル.mp4#t=10,30″ →10秒地点から30秒地点までの範囲を再生
src=”動画ファイル.mp4#t=,30″ →最初から30秒時点までの範囲を再生
src=”動画ファイル.mp4#t=,01:00:00″ →最初から1時間までの範囲を再生
src=”動画ファイル.mp4#t=10″ →10秒時点から最後まで再生