月別アーカイブ: 9月 2021

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%;
}
}

印刷時のみ有効になるJS

以前書いた印刷時にのみ有効になるスタイルに関連して、印刷時のみ有効になるJSです。
要するに、ブラウザで「印刷ボタン」を押した時に表示されるプレビューを制御します。

印刷する時に不要な要素を削除したり・・って言うのは、cssの@media print でなんとかなりますが、セル結合の制御まではcssでは出来ないのでこれはかなり有効です。

$(window).on('beforeprint', function(event) {

//処理
$("hoge").attr("colSpan","1")//これは印刷時のみ横セル結合を1にする


});

以下は、印刷キャンセルを押した後や印刷を終えた後の処理

$(window).on('afterprint', function(event) {

//処理
$("hoge").attr("colSpan","2")//横セル結合を2にする(戻す)

});