![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?c9bd177)
スマホ画面で長い文章の部分だけ折り返され、左端に短い幅で片寄ってしまいます。
これはどのように修正すれば良いのでしょうか。PCではいろんなブラウザで問題なく表示されています。
#header {
width:100%;
background:#cccc99;
}
#container {
width:950px;
margin-left:auto;
margin-right:auto;
text-align:left;
}
#col1 {
width:740px;
float:left;
margin-left:20px;
background:#383838;
}
#col2 {
width:190px;
float:left;
}
#footer {
clear:left;
width:100%;
border-top:1px solid #8f8472;
}
左側にメニュー(190px)を配置したレイアウトです。
h1,h2,P,liタグなど、とにかく長い文章の部分だけ、画面幅ではなく、短い幅で折り返され
左側に片寄っています。下記のxxxxxxxxの部分もそのようになります。
ul.abc {
list-style:none;
width:100%;
margin: 0;
padding: 0;
}
ul.abc li {
float:left;
margin-right:1em;
padding: 0;
}
ul.abc a {
float:left;
line-height:85px;
}
ul.abc img {
float:left;
margin-right:.5em;
vertical-align:middle;
}
<ul class="abc">
<li><a href="..." target="_blank"><img src="..." width="115" height="85" alt=""/><img src="..." height="1px" width="1px" border="0">
xxxxxxxxxxxxxxxxxxxxx</a></li>
</ul><div style="clear: left;"></div>
よろしくお願い致します。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
>そのような問題は起こりませでした。
それ以上は、HTML,CSSの詳細を見ないと判断できません。firefox+Firebug ( https://addons.mozilla.jp/firefox/details/1843 )+FireMobileSimulator ( https://addons.mozilla.jp/firefox/details/8519 )でもつかって解析してください。
原因は、そのテキストの入っているブロックの巾の設定だと思います。先に示したソースでは起こらないのではないかと思います。
あわせてHTML自体の構造もチェックすること。HTMLが正しく解析できないとCSSが期待通り適用されません。またCSSの文法チェックも必要
<div style="clear: left;"></div>のようなデザインのための空の要素は使うべきではありませんし・・
★Another HTML-lint gateway ( http://openlab.ring.gr.jp/k16/htmllint/htmllint. … )
★W3C CSS 検証サービス ( http://jigsaw.w3.org/css-validator/#validate_by_ … )
「CSSスタイルシートを意図した通りに機能させるには、正しい文書解析木が必要です。つまり、正当なHTMLを用いるべきです。 ( http://jigsaw.w3.org/css-validator/#validate_by_ … )」
この回答への補足
ご回答ありがとうございました。
ul.abc li {
float:left;
margin-right:1em;
padding: 0;
}
上記の部分についてのみですが、
display: block;
white-space: nowrap;
を追加することでどうやら対処できたようです。
いろいろと検証してみたのですが、よくわからず、結局header,footerはwidth:100%; で、containerや、その中身をpxで固定しているために,
・header,footerが320px、
・containerの画像を横並びにしている部分、display: block;
white-space: nowrap;の部分などが950px、
・その他の通常の文章の部分が320px
となって混在がおきてしまっているのかなあと思うのですが、これはもうリキッドタイプのレイアウトでないともう対処ができないということになりますか。
ちなみにiphonでは問題なく、アンドロイドでのみ混在の問題が起こります。
もしご存知でしたら教えていただければありがたく思います。
よろしくお願い致します。
No.1
- 回答日時:
示されたCSSやHTMLのソースでは原因はわかりませんが、内容の大きさはpadding辺の内側です。
巾が縮まりすぎるブロックに、固定巾のパディングやマージンが設定されているため内容巾が狭くなる(widthのデフォルトはauto)のではないかと。
たとえば、親コンテナブロックが、width:100%となっていて、その内側の<p></p>にマージンが固定で指定(たとえばmargin-left:200px)されていると、親ブロックの巾が200pxになると、<p></p>の巾はゼロになってしまいます。
しかし、
>PCではいろんなブラウザで問題なく表示されています。
もし予測が正しければ、PCでもウィンドウ巾を狭くすると同じ症状になるはずです。
スマートフォンやi-padで表示させるためには基本的に固定巾で作成することはありません。リキッドスタイルにした上で、最小幅を指定することが多いでしょう。
header,container,footerが書かれているCSSからだけの判断ですが、画面は上段一枠,中段二枠,下段一枠の一般的な配置だと想定してお答えします。(違っていたら、下記を参考にしてください。)
★floatによる段組について( http://oshiete.goo.ne.jp/qa/7079628.html#a3 )
★HTML5での段組( http://oshiete.goo.ne.jp/qa/7169929.html )
★DIVの崩れを防ぐには( http://oshiete.goo.ne.jp/qa/7069085.html )
なども参考にしてください。
★★HTMLをどのように書かれているか情報がないため、「DIVの崩れを防ぐには( http://oshiete.goo.ne.jp/qa/7069085.html )」のHTML(二段組)で示してあります。
i-phone,i-pad対応にするには、CSS部分を下記のものに変えて試すほうが良いでしょう。また、段組は印刷時には適用されません。
なお、_はタブに戻してください。
_<style type="text/css">
<!--
div.section p{
_text-indent:1em;
_margin:0 1em;
_line-height:1.6em;
}
-->
_</style>
_<style type="text/css" media="screen">
<!--
html,body{margin:0;padding:0;background-color:gray;}
div.header,div.article,div.footer{
_width:80%;margin:0 auto;/* センター配置IE5,非対応 */
_min-width:640px;
_max-width:900px;
_border:solid 1px rgb(255,200,200);background-color:rgb(255,200,200);
}
div.article{
_position:relative;
_background-color:lime;border-color:lime;
}
div.article div.section img{
_float:left;
_margin: 5px;
_border:1px solid gray;
_background-color:white;
}
div.article div.section{
_margin-left:32%;margin-bottom:200px;/* 見本のため */
_clear:left;/* clearがこのブロック内で使える */
}
div.article div.contentTable{
_position:absolute;
_top:0;left:0;width:30%;height:100%;
_background-color:aqua;border-color:aqua;
}
div.footer{background-color:yellow;border-color:yellow;}
-->
_</style>
この回答への補足
ご回答誠にありがとうございます。
もし予測が正しければ、PCでもウィンドウ巾を狭くすると同じ症状になるはずとのことでしたが、そのような問題は起こりませでした。
パディングやマージンもそんなに大きな固定幅のものもなく、段組のずれもありません。
上段一枠,中段二枠,下段一枠の一般的な配置です。
他にも考えられるような原因がお分かりでしたらよろしくお願い致します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS 書籍を見つつサイト造りの練習をしているのですが、見た目が一致しません 2 2022/11/28 15:00
- HTML・CSS ヘッダーの画像にメインエリアがかぶってしまいます 1 2022/11/28 14:06
- PHP style.cssのjQuery条件付きcssが機能しない 4 2022/07/17 18:27
- HTML・CSS 吹き出し 下記の吹き出しのスタイルシートについて 下記のスタイルシートは左側にアイコンがでる使用にな 1 2022/11/12 17:55
- JavaScript vertical sliderをautoplayしたい 2 2022/08/25 14:47
- HTML・CSS cssの display: flex;で横並びにならずに困ってます 1 2022/12/04 13:18
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/30 09:10
- HTML・CSS テキストを画面の真ん中に配置したいです。 2 2022/11/25 16:11
- HTML・CSS HTML & CSS 縦ボックス内の文字の左右センタリング 3 2023/03/25 04:23
- オープンソース cssで中央寄せ 1 2023/05/19 06:25
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
CSSで背景画像を一番下にもって...
-
htmlの文字が縦書きになる
-
widthやheightの数値に単位(px...
-
定義リストに下線をつけたいと...
-
CSSの角丸での質問です。 今、C...
-
CSSで画面サイズを縮小するとレ...
-
CSS テキストフィールドの文字...
-
<form>タグのプルダウンメニュ...
-
CSSでテーブルボーダーを表示さ...
-
インラインフレーム内の表示位...
-
css初心者 フレックスボックス...
-
クロスブラウザで同じ表記にな...
-
【ヒトの神秘】美男美女から何...
-
レスポンシブサイトで、右側に...
-
HTML属性での「""」 「''」違い
-
リストを2つに分割して、それぞ...
-
htmlのolやulなどlistにtitleや...
-
FC2ショッピングカートのカスタ...
-
CSSでクラスのエイリアス(include)
-
<ol><li> 左側にスペースがで...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
htmlの文字が縦書きになる
-
widthやheightの数値に単位(px...
-
画像イメージの上下左右、欲し...
-
CSS、width100%でもできる余白
-
CSSがなぜかfont-sizeだけ効か...
-
css初心者 フレックスボックス...
-
余分な縦スクロールバーが出て...
-
CSS:animation開始位置の設定
-
form input テキストを上下中央...
-
W3Cのソースコードの検証サービ...
-
スクロールボックスを中央に配...
-
CSSでボックスのheightが0になる
-
表示倍率を変えるとレイアウト...
-
【CSS】ヘッダーの高さが不明の...
-
Media Queries 4 で 非推奨とな...
-
div領域をウインドウサイズに合...
-
CSS(0の単位)について
-
divで囲まれたpaddingの指定を...
-
中点「・」の改行について
-
CSSで指定した背景画像にリンク...
おすすめ情報