ブログのレイアウトの崩れの原因と解決方法

このQ&Aのポイント
  • livedoorのブログのレイアウトをカスタムしている際に、本文にjavascriptタグを記入するとサイドバーの位置がズレる問題が発生しています。
  • レイアウトは2カラムで、本文の位置や内容は正常に表示されますが、本文の真横にサイドバーが表示されず、最下部から表示されます。
  • 試した解決策として、cssのwidthやpaddingの数値の調整、htmlの</div>の位置の確認などを行いましたが、問題は解決されませんでした。原因として、livedoorが提供するテンプレートへのカスタマイズによるDivタグの付け忘れや位置の誤りが考えられます。
回答を見る
  • ベストアンサー

ブログのレイアウトの崩れの原因が分かりません

livedoorのブログのレイアウトをカスタムしているんですが、どうしてもレイアウトの崩れを回避出来ずに困っています。 具体的な症状ですが、記事本文にjavascriptタグを記入するとサイドバーの位置がおかしな場所にズレてしまいます。 本文のタグを消すと元通り、正常な表示になります。 レイアウトは2カラムで、本文の位置、内容共に問題無く表示されますが、本来本文の真横にサイドバーが来るハズなのに、本文が終わった最下部の位置からようやく表示されます。 参考イラストがこちらにあります。 【https://www.dropbox.com/s/3j1lwr40klm949i/%E3%83%AC%E3%82%A4%E3%82%A2%E3%82%A6%E3%83%88%E3%82%BA%E3%83%AC%E3%80%80%E8%B3%AA%E5%95%8F.jpg?dl=0】 ※参考イラストでは『次の記事 前の記事のボタン』が崩れている場面においても記事本文下に正常表示されていますが、これは色々試している中で正常な表示になる事もあった位の話で、これらのボタンも位置がおかしく、サイドバーの部分に表示だったりとおかしくなっています。  試した事は以下です。 (1)cssに記述されている『#main-inner』や『#sidebar』の箇所のwidthやpaddingの数値を変更。 (以前スクリプトを本文に記述していない頃、レイアウト決めで今回と同じようにサイドバーが正常位置に表示されない事があり、その際は単に横幅が足りなかっただけのようで、数値を調整する事で正しい元の位置に表示できましたが、今回は以前のそれとは関係ない模様) (2)htmlの</div>の位置や書き忘れ 原因を調べている段階でこちらのサイトを見つけ、 【https://sagadylan.com/blog-layout-fix/】 今回の原因はコレと同じ原理なのではと色々試してみましたが、何分cssやhtmlに詳しい訳ではないので解決までのイメージがイマイチ理解出来ていません。 とりあえず物は試しとhtmlの怪しそうな箇所に</div>を記入しては戻し記入しては戻しと試してみたりもしました。 今回のレイアウトはlivedoorが用意しているテンプレートを使用していますが、 ちょこちょこ色を変えたりボーダーラインを四隅にひいたりと変更しているので、 知らないうちにDivタグを付け忘れてしまった、或は本来あるべき位置ではなく別の場所に終了タグを置いてしまっているのか… もし解決に必要な情報が他にあれば、回答の際に教えて頂けるとお礼欄にて追記させて頂きたいと思います。

  • CSS
  • 回答数2
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

ブログを拝見させていただきました。 なるほどね で、色々見てみると、問題点は その(1) 閉じタグのエラーが見られます。 <font size="3" face="MS ゴシック"> <div style="~中略~"> 新着記事 </font></div> ↑ 閉じタグが逆になっています ↓ <ifarticlecoverimage> <a href="http://~" itemprop="url"><img src="http://livedoor.blogimg.jp/~.jpg" align="left" hspace="7" vspace="0" width=300 height=200 > </ifarticlecoverimage></a> それから、 <!-- // plugin-categorize --> <Div Align="left"><img src="http://livedoor.blogimg.jp/~.png" widht="180px" height="40px"></Div></a> ↑ 閉じタグの</a>が余っているので、削除。 ↓ <!-- // plugin-memo --> <Div Align="left"><img src="http://livedoor.blogimg.jp/~.png" widht="180px" height="40px"></Div></a> それと、<Div>と</Div>の「D」が大文字になっている。 質問者のブログは、html5なので、小文字にして下さい。 ↑ このようなケースが他のところもありますので、小文字にしましょう。 その(2) コメントアウトの「<!--」と「-->」がコードに別々に残っている。 <!-- /記事ヘッダー、記事タイトル --> <!-- 記事本文 --> <!-- <div class="article-body"> <div class="article-body-inner"> ↑ 「<!-- 記事本文 -->」の次行に「<!--」がある。 それと、 </div> </div> --> <!-- /記事本文 --> <!-- 記事フッター、カテゴリ、コメント、ソーシャルボタン --> ↑ 「<!-- /記事本文 -->」の前行に「-->」がある その2点を削除してください。 もう1つ、 <span class="calendarweek"><%= wdays[i] %><span> ↑ <span>が、閉じタグになってない。「/」を入力し忘れている。 その(3) <% ○○○ %>のようなコードがありますが、どこから拾ったのですか? 基本的にライブドアブログは、<% ○○○ %>を使いません。 <% ○○○ %>は、どのサーバー(アメブロやFC2ブログやYahoo!ブログなど以外)かは忘れたけど、サーバー側が<% ○○○ %>をhtmlコードに変換する仕組みで表示されます。ライブドアでは変換されず、そのままhtmlコードに表示されてしまいます(カレンダーなどは表示されてますが)。 ここでcssの話に移します。 「1 2 3 4 5...157 >>」のページ送りが右上にありますね。 それを正しい位置に戻しましょう。 .pager { clear: both; } 最後にサイドバーについてですが、htmlに入れる場所が違っているので、下に来ています。それが原因です。 まず、 <!-- サイドバー -->~<!-- /サイドバー -->までのコードを <!-- /記事全体 --> <div id="ad2"></div> </div> ↑ </div>の次行に移動して下さい。 これで直るはずです。 念のため、コードをメモ帳にコピーして保存するなど、バックアップして修正作業進めてください。

okwave7722taro
質問者

お礼

レイアウトが修復できましたのでお礼とご報告致します。 >その(1) 閉じタグのエラーが見られます~閉じタグが逆になっています htmlで修正。 >閉じタグの</a>が余っている・Divの小文字化 ブログパーツ部分のhtml入力でなぜか</a>だけが残っていました。 >コメントアウトの「<!--」と「-->」がコードに別々に残っている http://livedoor.blogimg.jp/youbass222/imgs/f/2/f2207dc1.png このようにしていました。 (この部分を削除した時点でレイアウトの不具合が解決しました! ) 実はレイアウトをカスタムする際、土台となるテンプレートの 「多分この部分は不要なんだけど、一応消さずに残しておこう。」と思っていた部分でして、 「<!--」と「-->」の間には何を書いても良いんだ!じゃあ挟んじゃえ。 という考えからこのような記述にしていましたが、不具合の原因だったんですね…。 (実は同じ考えでcssでも記述してしまっています。たまたま不具合が出ていないだけかもしれませんが) ~以下css~ /* 多分いらない部分 #wrapper { padding-top: 24px; } #container { border-radius:4px; box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05); margin: 0 auto; width: 940px; } #content { border-radius: 0 0 4px 4px; position: relative; } #main { padding: 20px 00px; } ----------------------------------------------- */ > <span>が、閉じタグになってない。 これに関してはユーザーが編集出来るhtml内では見当たりませんでした。 ただ、カレンダーのブログパーツ(html記述ではなくライブドアサイトのワンボタンで表示、設置が出来るもの)を非表示にしたところ、問題があったページのソースを表示しても<span>の部分が無事無くなっていました。 なので今はカレンダーを非表示にしています。 > <% ○○○ %>のようなコード これに関してもユーザーが編集できる部分のcssやhtmlで<%や%>で検索しましたが見当たりませんでした。 既にレイアウトは直っていましたので、ひとまずは見送りという形にしました。 > 送りが右上・htmlに入れる場所が違っているので、下に来ています これもレイアウトが直った時点でメインカラムの下側、サイドバー位置それぞれ正しい位置に移動していましたのでcss、htmlは編集しませんでした。 ひとまずはこれで様子をみながら細かい部分の編集をしてみようと思います! それにしても奥が深いというか、パーツボタン1つ置くにしても難しいですね…

その他の回答 (1)

回答No.1

問題のURL(質問者のブログURL)を掲示して下さい。 >>javascriptタグを記入するとサイドバーの位置がおかしな場所にズレてしまいます それを入れた場所も教えて下さい。 コメントアウトを入れてくれれはありがたい。 <!-- ここからjavascript --> <!-- javascriptはここまで --> ↑ みたいにコメントアウトしてね。

okwave7722taro
質問者

お礼

現在は不具合が無い以前のレイアウトを使用していますので、帰宅したら不具合の出た新レイアウトに変更し、こちらの補足欄より報告させていただきます。 (1時間程で帰宅すると思います。)

okwave7722taro
質問者

補足

http://music2.blog.jp/こちらが問題のURLになります。 本文に埋め込んであるスクリプトの前後にコメントアウトを入れてあります。(川崎工場夜景の記事 http://music2.blog.jp/archives/72085411.html の冒頭にあるスクリプトです。) 本来はトップページ(http://music2.blog.jp/)に記事のタイトルと記事最初の画像だけが表示されるはずが、スクリプトを入れた今の状態だと本文も丸々表示されてしまっている状態です。 個別記事で表示させた時はレイアウトの崩れは起きていないようです。

関連するQ&A

  • ブログのページレイアウトを元に戻したい

    livedoor blog PRO (アマのクセに) 2カラムです。 記事中に、 <div style="text-align:left;"><table> <tr> <td>1つ目のセル</td> <td>2つ目のセル</td>   </tr> </table></div> を使ったところ、途端に、右サイドバーのブログパーツ(livedoorプロフィールと最新記事)が、 記事下の境界線の下に移動してしまいました。 記事幅が所定の幅を超えてしまったからだと思うのです。 CSS は、少しだけ分かります。 ブログパーツの位置を元に戻す方法をご教示ください。

  • ブログ画面のレイアウトが変になってしまった

    ブログ画面のレイアウト、サイドバーの位置に五つ前の記事が入り込んでしまっています。サイドバーにあるべきカレンダーやプロフィール・最新記事・カテゴリーなどが10記事ががあるその下に表示されてしまっています。 仕方がないので、現在は記事を一つだけ表示するようにしています。 治す方法があったら教えてください。お願いいたします。

  • ブログのレイアウト

    ブログのレイアウト?について質問します ブログのレイアウトが崩れていますよね。 本来は左にプロフィールなどで、右に記事本文だと思うのですが、下に記事本文が掲載されています。 前にそういう系の幅をいじくって、右に表示されるようにしたのですが、なぜかまた下に本文ガ掲載されています。 どのようにしたら戻るでしょうか?

  • ブログのレイアウトを両サイドバー三段組にしたいのですが・・・

    こんばんはlivedoorブログのレイアウトに関して質問をさせてください。 現在自分のブログのレイアウトを両サイドバーの三段組にしようと思っております。毎日コミュニケーションズの『ポータル、ブロバイダ別 blogデザインカスタマイズ辞典』には document.write('</div><divide="links2">'); というタグを作成し、side2.jsの名でそれを保存し、アップロードするように書いてあります。しかしlivedoorブログでアップロード可能なファイルは GIF, JPG, PNG, BMP のみらしく、何度試みてもエラーが発生してしまうのです。それとも僕のやり方が間違っているのでしょうか? ご回答はお時間がある時で結構です。よろしくお願いします。

  • 2カラムのレイアウト

    2カラムのレイアウトにおいて、HTMLの記述部分において。 【例1】コンテナーの「★外」に、フッターがある場合と。 ・「コンテナー(コンテンツ+サイドバー)」 ・「フッター」 【例2】コンテナーの「★中」に、フッターがある場合。 ・「コンテナー(コンテンツ+サイドバー+フッター)」 があるように思いますが? ★どっちでもいいんでしょうか? (どっちも、同じレイアウトになるんでしょうか? そんな感じがします。)  ^^ HTML/CSS 初心者なもので。。。よろしくです。 ^^ ---------------------------------------------------------------- 【例1】 <div id="container">   <div id="contents"> 本文 </div>    <div id="sidebar"> サイド部分 </div> </div> <!--container部分終わり-->  <div id="footer">   <p>著作権</p>  </div> <!--footer部分終わり--> 【例2】 <div id="container">   <div id="contents"> 本文 </div>    <div id="sidebar"> サイド部分 </div>  <div id="footer">   <p>著作権</p>  </div> <!--footer部分終わり--> </div> <!--container部分終わり-->

    • ベストアンサー
    • HTML
  • GoogleChromeでレイアウトが崩れてしまう

    タイトルの通り、Google Chromeで私のウェブサイトを閲覧した際に、レイアウトが 崩れてしまっていることが分かったのですが、どう修正したら良いのか分からず大変困っています。 当サイトのURLは下記になります。 http://fashion-news.doorblog.jp/ 具体的には、まず右サイドバー(div id="extra")が下に落ちてしまいます。 また、サイト上部と個別記事下部にlivedoorの相互RSSというブログパーツを設置しているのですが どちらもフォントサイズ等が崩れてしまい、原因が分からずにいます。 FireFoxやIE、Lunascapeでは正常に表示されるのですが、何故Chromeだけ崩れてしまうのでしょうか・・。 もう私個人ではどうしようもないので、どなたか詳しい方がいましたら原因と解決策を教えて頂きたいです。 よろしくお願いします!

  • レイアウトの崩れについて

    先日から初めてHP作りに挑戦しているのですが、<div>の中の<table>の位置がおかしい(tableの位置がdivの下のほうに突き抜けて表示される)ので困っています。 どうすればdivの中にtableがおさまるでしょうか。 (XHTML) <div id="main"> <div class="contents"> <table> <tr> <td id="tdl" rowspan="4">>映像</td> <th>文字</th> <td>文字</td> </tr> <tr> <th>文字</th> <td>文字</td> </tr> <tr> <th>文字</th> <td>文字</td> </tr> <tr> <th>文字</th> <td>文字</td> </tr> </table> </div> </div> <div id="sub"> 内容 </div> (CSS) #main { width: 600px; float: left; } .contents { width: 600px; height: 155px; background-color: #f5f5dc; font-size: 16px; float: left; } table { width: 590px; height: 150px; border-collapse: collapse; table-layout: fixed; border: solid; border-color: #f1f1f1; } th { width: 100px; height: 32px; border-bottom: solid; border-bottom: thin dotted; background-color: #f1f1f1; font-size: 16px; text-align: left; } #tdl { width: 160px; height: 145px; border: none; } td { width: 320px; height: 32px; border-bottom: thin dotted; font-size: 16px; text-align: left; } #sub { width: 150px; height: 145px; background-color: #999; float: right; } 関係あるか分かりませんが、サイト全体の幅は770pxです。 書き方がめちゃくちゃだと思うので、おかしなところも指摘していただけると幸いです。 よろしくお願いします。

    • ベストアンサー
    • HTML
  • CSSについてです

    tumblrのテーマを作っているのですがサイドバーのレイアウトがうまくいきません。 具体的には、サイドバーがコンテンツがある部分の長さまでしか伸びず、それより下は記事の部分が食い込んでしまうといった問題が発生しています。 僕は、サイドバーの横にあるborder-rightを記事などほかの部分と同じ長さまできっちり伸びるようにしたいです。 このサイトを見てこんな設定をしてみたのですがこれでは画面に表示されている部分までしか効果がなくスクロールしたら意味がなくなってしまいます。 サイト http://d.hatena.ne.jp/seto-san/20081215/1229335070 HTML <body> <div id="body">本文</div> </body> CSS * { margin: 0px; padding: 0px; } html{ height: 100%; } body{ height: 100%; } #body { height: 100%; min-height: 100%; } body > #body { height: auto; } tumblrのテーマはごちゃごちゃしているので、簡易的なページを位置から作ってそこでサイドバーを実装してみてもうまくいきませんでした。 何かうまいやり方があったら教えてください

    • 締切済み
    • CSS
  • IE8でサイドバーのレイアウトが崩れる場合の対処法

    CSSについての質問です。 IE8よりも古いバージョンでのみレイアウトが崩れて困っています。 簡単な抜粋ですが、以下のような感じでfloatを使ってレイアウトを作成しています。 [HTML] ---------------- <div id="main"> </div> <div id="sidebar"> </div> <div id="footer"> </div> ---------------- [CSS] ---------------- #main{ float:left; width:620px; } #sidebar{ float:right; width:300px; } #footer{ clear:both; } ---------------- IE8よりも古いバージョンでは、サイドバーが下に落ちてレイアウトが崩れてしまいます。 しかもIEの開発ツールでHTMLを確認したところ、なぜかサイドバーがメインコンテンツの中に入っていました。 ---------------- <div id="main"> <div id="sidebar"> </div> </div> ---------------- なので、全体の幅を広げても、下に落ちてしまったサイドバーは全く上がってきてくれません。 どうにか解決する方法はありませんでしょうか? 文章だと伝わりくいかもしれませんが、よろしくお願いいたします。

    • ベストアンサー
    • CSS
  • Livedoor Blogについて教えてください。

    Livedoor Blogの無料ユーザーです。デザインは3カラムあるものを使っています。 何故か、トップページだけ、左右のサイドバーのプラグインが表示されません。(あるデザインを使うと、右のサイドバーだけが、本文の一番最後に表示されてしまったり、あるデザインだと全く左右のサイドバーが表示されなかったりです。) おかしなことに、2ページ目以降や個別記事は全く問題なく左右のサイドバーが表示されます。 トップページのみどうしてもうまく出ません。「カスタマイズ」のところで該当する部分をいじればいいのでしょうが、一生懸命説明等読んだのですが、さっぱりわかりません。 どなたか、この解決方法を教えていただけませんでしょうか?

専門家に質問してみよう