すたすた式
Blogger Vaster2
これを
こんな感じに
下にスクロールした時に、サイドバーの一番下のガジェットを固定・追従させるようにしました。
作業手順ですが、まず、固定・追従させたいガジェットに CSS を追加。次に、PC で3ヶ所、スマホで3ヶ所、のセレクタの変更です。
ベンダープレフィックス-webkit-や-ms-はAutoprefixer CSS onlineを使って付けました。
-webkit-
-ms-
固定・追従させたいガジェット(今回は「新しい記事」のガジェット)に CSS を追加しました。
セレクタはchromeの検証機能(右クリックで[検証]、またはキーボードのF12 キー)を使って調べました。
/* 固定・追従させたいガジェット */ div#HTML6 { position: -webkit-sticky; position: sticky; top: 0; background: #fcfcfc; }
div#HTML6 がchromeの検証機能で調べたセレクタ名です。
position: sticky; で固定・追従。
top: 0; で上にぴったり張り付く。(数字の変更で上に間隔ができる 20px とか)
background: でサイドバーの背景色にあわせました。(なくてもいいかも)
貼り付けた場所はとりあえず .sidebar{} の下あたりにしました。
widthやmax-widthの値をデフォルトテンプレートよりやや大きくしていますが、これは好みで変えて下さい。
.content-wrapper{ width: 1040px; /* 記事部分 サイドバーの横幅 */ margin-right: auto; margin-left: auto; padding-top:20px; }
変更後
display: flexを追加しました。
widthの値を変更しました。
横幅がせまくなると横のスクロールバーがでたのでwidthをmax-widthに変更しました。
.content-wrapper { /* width: 1120px; */ /* 記事部分 サイドバーの横幅 */ /* default 1040 */ max-width: 1120px; margin-right: auto; margin-left: auto; padding-top: 20px; display: -webkit-box; /* 固定・追従コンテンツ用*/ display: -ms-flexbox; /* 固定・追従コンテンツ用 */ display: flex; /* 固定・追従コンテンツ用 */ }
.main-outer{ float:left; width:710px; background:#ffffff; box-sizing:border-box; }
メインカラムは可変できるようにflex: 1;を追加しました。
横のスクロールがでたのでwidthからmax-widthに変更しました。
.main-outer { /* float: left; */ /* width: 780px; */ /* default 710 */ max-width: 780px; background: #fcfcfc; -webkit-box-sizing: border-box; box-sizing: border-box; -webkit-box-flex: 1; /* 固定・追従コンテンツ用 */ -ms-flex: 1; /* 固定・追従コンテンツ用 */ flex: 1; /* 固定・追従コンテンツ用 */ }
.sidebar { width:330px; max-width:100%; float:left; padding-left:40px; box-sizing:border-box; }
サイドバーの幅は固定しました。
display: flexをつけないと、ガジェットがいい感じに降りてきませんでした。
.sidebar { width: 340px; /* default 330 */ /* max-width: 100%; */ /* float: left; */ padding-left: 30px; -webkit-box-sizing: border-box; box-sizing: border-box; display: -webkit-box; /* 固定・追従コンテンツ用 */ display: -ms-flexbox; /* 固定・追従コンテンツ用 */ display: flex; /* 固定・追従コンテンツ用 */ }
「レスポンシブデザイン」の @media screen and (max-width: 768px){ 以下が変更対象です。
.content-wrapper{ width:auto; margin:0 auto; padding-top:5px; }
flex-direction: column; でメインカラムとサイドバーを縦に並べます。
.content-wrapper { width: auto; margin: 0 auto; padding-top: 5px; -webkit-box-orient: vertical; /* 固定・追従コンテンツ用 */ -webkit-box-direction: normal; /* 固定・追従コンテンツ用 */ -ms-flex-direction: column; /* 固定・追従コンテンツ用 */ flex-direction: column; /* 固定・追従コンテンツ用 */ }
.main-outer{ width:100%; padding:0 !important; float:none; margin-left:auto; margin-right:auto; }
float: none; をコメントアウトしました。(コメントアウトしなくてもいいかも?)
.main-outer { width: 100%; padding: 0 !important; /* float: none; */ margin-left: auto; margin-right: auto; }
.sidebar{ width:90%; float:none; padding-left:initial; margin-left:auto; margin-right:auto; }
.sidebar { width: 90%; /* float: none; */ padding-left: initial; margin-left: auto; margin-right: auto; }
これが
サイドバー全体を固定・追従させる場合、セレクタ名はdiv#sidebar-sectionでした。また.sidebarのdisplay: flex;はいらない様です。
サイト内検索に使ってください 🐤
© 2015 すたすた式
Enjoy!👍
QooQ
コメントなし:
コメントを投稿