Movable Type のサイトをレスポンシブ化

投稿日:

ya2707_2022.jpg

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; で調整する必要があるようです。