Movable Type のサイトをレスポンシブ化
Movable Type のサイトをレスポンシブ化
初めに
1: Movable Type のサイトをレスポンシブ化するにあたり、HTMLヘッダー と HTMLブログヘッダー に、viewport と レスポンシブ化用の css にブレイクポイントを以下のように設定しておきます。
viewport 設定
レスポンシブ化するた為の css (css 名は任意 例:smart.css )に、ブレイクポイント として
@media screen and (max-width:767px){ }
{ } 内には、私の場合、通常の css いわゆる screen.css の内容をそのまま、smart.css にコピペし、レスポンシブに必要な箇所を display:none 又は、修正等しながら作成しました。
2: 次にテンプレートの、メインページと記事の以下の箇所を、タグで括ります。(タグ名は任意)
<.header>
<$mt:Include module="ヘッダー"$>
<./header>
<.div class="wrapper">
<.div id="content-inner">
~
<.main>
<.div id="alpha">
<.div id="alpha-inner">
~
<./div>
<./div>
<./main>
<./div> !-- id="content-inner" の括りタグ
<.aside>
<$mt:Include module="サイドバー"$>
<./aside>
<./div> !-- class="wrapper" の括りタグ
<.footer>
<$mt:Include module="フッター"$>
<./footer>
これで準備は整いました。
レスポンシブ化に際しての最大のポイントは、IMG のサイズとフォントサイズの設定です。 (画面のサイズによっては、IMG ファイルが大き過ぎたり、文字が小さ過ぎてたりして、読めなくなってしまいます。)
以下、フォントサイズに関しての css コードを抜粋したものです。
smart.css
/* -- 画面(ブラウザ)の大きさが「767px」以下の時に、適用されます。-- */
@media screen and (max-width:767px){
body {
font: Times New Roman, arial, helvetica, hirakakupro-w3, osaka, "メイリオ", sans-serif;
-webkit-text-size-adjust: 100%;
font-size: 16px;
}
/* -- 以下のコードはこのサイトを参考にしました。(https://web-design-textbook.com/recipe/text-responsive.html) -- */
@media (max-width:767px){
html {
font-size: calc((100vw - 320px) / 140 + 17px);
}
}
/* -- デフォルト設定の基準を16pxの62.5%、1rem=10px とする -- */
html {
font-size: 62.5%;
}
* {
float: none;
position: static;
}
img {
max-width: 100%;
height: auto;
}
.wrapper {
display: block;
margin: 0;
padding: 0;
max-width: 100%;
min-width: initial;
}
main {
margin: 0;
background-color: #FF0000;
}
aside {
width: 100%;
}
/* Layout */
.layout-wm #alpha {
width: auto;
}
/* -- サイドバーは非表示にしていますが、横幅が 767px を越えると表示されます。-- */
.layout-wm #beta {
display: none;
}
/* -- 「font-size:100%」で 16px=1rem : 画面が縮小すれば font-size も小さくなるので、以下 横幅が 100px 変化する毎に font-size を 「 % 」で大きくしています。細かく区切ることによりスムーズに伸縮します。この場合は、720px ~ 320px の範囲で設定しています。( 大きい順に書かないと機能しないようです ) -- */
@media (max-width:720px){
.tfont {
background-color: #f8fcfc;
font-family: Times New Roman;
font-size: 130%;
line-height: 2;
width: 100%;
padding-right: 0.625rem;
padding-left: 0.625rem;
}
}
@media (max-width:620px){
.tfont {
background-color: #f8fcfc;
font-family: Times New Roman;
font-size: 140%;
line-height: 2;
width: 100%;
padding-right: 0.625rem;
padding-left: 0.625rem;
}
}
@media (max-width:520px){
.tfont {
background-color: #f8fcfc;
font-family: Times New Roman;
font-size: 150%;
line-height: 2;
width: 100%;
padding-right: 0.625rem;
padding-left: 0.625rem;
}
}
@media (max-width:420px){
.tfont {
background-color: #f8fcfc;
font-family: Times New Roman;
font-size: 180%;
line-height: 2;
width: 100%;
padding-right: 0.625rem;
padding-left: 0.625rem;
}
}
@media (max-width:320px){
.tfont {
background-color: #f8fcfc;
font-family: Times New Roman;
font-size: 200%;
line-height: 2;
width: 100%;
padding-right: 0.625rem;
padding-left: 0.625rem;
}
}
} !-- 以外と忘れやすい @media screen and (max-width:767px) の括りタグ
font-size を " % " にしたのは修正しやすい理由からです。 実物の端末で確認はしていませんが、Google デベロッパーツールではスムーズに機能しています。 又、固定化されている要素があれば、各横幅毎に、position: fixed; で調整する必要があるようです。