すいません。
1つ質問がございます。
下記はYahooのニュースサイトですが、スマホサイトで見た場合の各ニュースの枠の大きさについて質問があります。
http://news.yahoo.co.jp/hl?c=c_ent
これはCSSで制御していると思うのですが、具体的にどの部分で制御しているのでしょうか?
CSSは画像1にあると思いますが、この中の具体的にどこで指定しているのでしょうか。
画像2はiphone6で見た場合です。
画像3はiphone5で見た場合です。
また、画像2の各ニュースの枠の大きさはニュースのコメント量によって若干調整されています。
それを、例えば、画像2でくくったニュースのみを200x100と変更するにはどうすればよいでしょうか? 画像4のようにGoogle developer toolの右下で変更しても変わりますが、更新するとまたもとに戻ってしまいます。以下の2つのやり方があって、2つ目を考えているのですが知っている人がいたら教えていただければ幸いです。
1・このニュースのみdiv idを設定して、外部CSSでこのdiv idを使って調整する。
2・JavascriptでCSSを操作して、200x100に書き換える。Webページを読み込んだときに、外部CSSを適用せず、このJavascriptを適用するようにする。
2は実際無理なやり方でしょうか・・・
もしJavascriptのカテゴリで聞くべきでしたら、そちらで聞きます。
お手数ですがよろしくお願いいたします。
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
CSS3 の新機能である flexible box を使っているようです
https://www.w3.org/TR/css-flexbox-1/
https://developer.mozilla.org/ja/docs/Web/CSS/CS …
この機能を使えば、写真以外では大きさの指定は不要ですので、
以下の記述でブラウザがよろしく表示を調整してくれます。
<style>
.記事 a { display: flex; }
.記事 a dl { flex: 1; } /* 写真幅を除いていっぱいに表示 */
.記事 a div { width: 60px; height: 60px; }
</style>
<ul class=記事>
<li> <a><dl><dt>記事</dl><div>写真</div></a>
</ul>
ご質問の「一部のみを200x100と変更する」を行うならば、
CSS で "display: flex" を指定しているルールに対して、
ある要素の場合のみ、縦幅横幅を追加指定するだけで解決です。
例:
.記事 a { display: flex; }
.記事 a#ある要素のID { width:200px; height:100px; overflow:hidden;}
ある要素、の指定方法は他にも色々ありますので、ご検討ください。
.記事 a:firsr-child /* 最初の記事のみ */
.記事 a[href*="tokuteinokiji.html"] /* 特定の URL を含むリンクのみ */
ただ、そのサイトが自分の管理内ならば CSS を変更すれば済む話ですが、
管理外ならば、ユーザースタイルシート等の荒業を使わなければならないでしょう。
https://chrome.google.com/webstore/search/user%2 …
No.3
- 回答日時:
なお、調べ方ですが、ウェブ開発されているなら、ツール(
https://addons.mozilla.org/ja/firefox/extensions … )の豊富なfirefoxをお使いだと思いますが、そのアドオンのFirebug( https://addons.mozilla.org/ja/firefox/addon/fire … )と、FireMobileSimulator( https://addons.mozilla.org/ja/firefox/addon/fire … )を組み合わせて、ユーザーエージェントを変えるとHTMLソースや適用されるスタイルが変わることが確認できます。FireMobileSimulatorでなく、User-Agent Switcher( https://addons.mozilla.org/ja/firefox/addon/user … )でも確認はできる。firebug で変更した内容を壱岐応する場合はテキストエディタを指定して、それでできる。
先のHTMLとCSSでウィンドウ幅を変更すると、どのように適用されるかわかると思います。
30代男性にリクエストされていますが、私は64歳・・。
No.2
- 回答日時:
文字数の制約で書ききれなかったdivの使い方
NOTE: Authors are strongly encouraged to view the div element as an element of last resort, for when no other element is suitable. Use of more appropriate elements instead of the div element leads to better accessibility for readers and easier maintainability for authors.( https://www.w3.org/TR/html5/grouping-content.htm … )
(訳)著者は、他により適切な要素がないときの最後の手段としてdiv要素を表示することが強く奨励されます。divでなくより適切な要素を使用することは、読者のためにはより良いアクセシビリティを、著者のためにはメンテナンス性の向上につながります。
こうして、率直に文書構造だけをHTMLでマークアッフして、その文書構造に従ってCSS(カスケーディング スタイルシート)を書くのです。
そのためには、CSSの命といっても過言ではない「カスケーディング」を知っておかないと書けません。
カスケードとは、流れ落ちるというような意味で、基本的なものからより詳細な指定にカスケードしていくしくみ。
6 プロパティ値とカスケーディング、継承の割り当て( http://momdo.s35.xrea.com/web-html-test/spec/CSS … )
★タブは_に置換してあるので戻してください。
<style media="screen"><!-- PCやipad,スマホ用 -->
<!--
html,body{margin:0;padding:0;}
header,section,footer{
_width:100%;
_min-width:320px;
_max-width:1000px;
_margin:0 auto;
}
header nav ul{
_background-color:navy;color:white;
_text-align:center;
_list-style-type:none;
_margin:0.5em auto;
_padding:0;
_line-height:2em;
}
header nav ul li{
_display:inline-block;
_width:8em;
}
header nav ul li a{
_color:white;
}
section{position:relative;}
section section{
_margin-right:320px;
_width:auto;
}
section section section{
_margin-right:0;
_width:auto;
}
section section figure{
_width:35%;
_position:relative;
_float:right;
_margin:0.5em 1em;
}
section section figure img{
_width:100%;
_height:auto;
}
section aside{
_width:300px;height:100%;
_padding:10px;
_position:absolute;
_top:0;right:0;
_background-color:red;
}
/* ウィンド幅でスタイルシートを変える */
@media (max-width: 1000px){
_section aside{
__background-color:orange;
_}
}
@media (max-width: 760px){
_section section{
__margin-right:220px;
__width:auto;
_}
_section section figure{
__width:200px;
_}
_section aside{
__width:200px;
__padding:5px;
__background-color:aqua;
_}
}
@media (max-width: 640px){
_section section{
__margin-right:0;
_}
_section aside{
__position:static;
__width:auto;height:auto;
__background-color:lime;
_}
}
-->
</style>
No.1
- 回答日時:
可能な限りjavascriptは使用しません。
javascriptはそれが有効な設定にされてないと無効。検索エンジンはjavascriptなしで読み込むのでSEO(検索エンジン最適化)上問題になることもある・・lavascriptを使わなくて済むように、そのためのCSSなのですからね。
以下はご存じたと思いますが簡単に説明すると
元来divは「DIV要素とSPAN要素は、id属性及び class属性と併用することで、文書に構造を付加するため( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html4 … )」です。ご存知だと思いますが16年前のHTML4.01の勧告前から強く言われ続けてきたこと。
HTML5ではそれが守られないために、文書構造を示すheader,section,nav,footerなどの新しい要素が追加され( http://www.html5.jp/trans/w3c_differences.html#n … )たこと。divは原則使わなくなった。
次回補足します。
レスポンシブは、HTML4.01,CSS2の時代に登場した、メディア依存のカスケード( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html4 … )の拡張です。
ですから、
1) リキッドデザインであること
2) メディア依存であること
が基本です。そのうえで
3) mediaquery を使ってブラウザのウィンドウ幅でスタイルを変更する
という手順になります。
★ そのためには、そもそも「構造とプレゼンテーションの分離( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html4 … )」ができてないと始まらない。
簡単なサンプル書いておきます。
まず、HTMLを書きますが、文書構造だけ指定します。
とりあえず、下記のようなHTMLだとします。
★タブは_に置換してあるので戻してください。
★ セミコロン: は全角の:に変更してあるので戻してください。
★Another HTML Lint - Gateway( http://www.htmllint.net/html-lint/htmllint.html# )
のDATA入力(右上)でチェック済み。
★スタイルシートは後で・・今から仕事なので
<!doctype html>
<html>
<head>
_<meta charset="utf-8">
_<title>サンプル</title>
_<meta name="description" content="">
_<meta name="author" content="ORUKA">
<style media="screen">
<!--
-->
</style>
</head>
<body>
_<header>
__<h1 id="title">Your title</h1>
__<nav>
___<ul>
____<li><a href="#">Some</a></li>
____<li><a href="#">navigation</a></li>
____<li><a href="#">links</a></li>
___</ul>
__</nav>
_</header>
_<section>
__<section>
___<figure>
____<img src="https://d1v9c5y32oxrkp.cloudfront.net/oshietegoo/images/media/b/505976443_575c9a297f9c3/M.jpg" width="500" height="239" alt="表示見本">
___</figure>
___<h2>質問1</h2>
___<p>
____下記はYahooのニュースサイトですが、スマホサイトで見た場合の各ニュースの枠の大きさについて質問があります。
___</p>
___<p>
____<a href="http://news.yahoo.co.jp/hl?c=c_ent">エンタメニュース - Yahoo!ニュース</a>
___</p>
___<p>
____これはCSSで制御していると思うのですが、具体的にどの部分で制御しているのでしょうか?
___</p>
___<p>
____CSSは画像1にあると思いますが、この中の具体的にどこで指定しているのでしょうか。
___</p>
___<section>
____<h3>回答</h3>
____<p>
_____サーバー側でユーザーエージェントを判別してHTMLを(PHPなどで)動的に出力しています。ウィンドウ幅を変えたのではデザインが変わらないことから明白です。<strong>この方法ではユーザーエージェントを得られない場合は効きませんし、スマホやipadの縦置きや横置きなどウィンドウ幅では変更できない。</strong>
____</p>
____<p>
_____とても古くてウェブ標準でもないのですので参考にはできません。
____</p>
____<ul>
_____<li>div要素を文書構造ではなくデザインのためだけに使用している。</li>
_____<li>CSS1時代のセレクタで、カスケーディングが一切考慮されていない</li>
_____<li>印刷や携帯電話など他のUAに対する配慮がされていない</li>
____</ul>
___</section>
__</section>
__<section>
___<h2>質問2</h2>
___<p>
____画像2の各ニュースの枠の大きさはニュースのコメント量によって若干調整されています。
___</p>
___<p>
____それを、例えば、画像2でくくったニュースのみを200x100と変更するにはどうすればよいでしょうか?
___</p>
___<p>
____画像4のようにGoogle developer toolの右下で変更しても変わりますが、更新するとまたもとに戻ってしまいます。以下の2つのやり方があって、2つ目を考えているのですが知っている人がいたら教えていただければ幸いです。
___</p>
___<ol>
____<li>このニュースのみdiv idを設定して、外部CSSでこのdiv idを使って調整する。</li>
____<li>JavascriptでCSSを操作して、200x100に書き換える。Webページを読み込んだときに、外部CSSを適用せず、このJavascriptを適用するようにする。</li>
___</ol>
___<p>
____2は実際無理なやり方でしょうか・・・、もしJavascriptのカテゴリで聞くべきでしたら、そちらで聞きます。
___</p>
___<section>
____<h3>回答2</h3>
____<p>
_____ウィンドウ幅でスタイルシートを切り替えます。具体的にはmediaqueryを使う。
____</p>
____<p>
_____Google developer toolでは、あくまでスタイルシートを書き換えた時の表示確認です。このページだけuserstyle Sheetを適用させたいのでしたら、スタイルシートを別途書いて適用させます。(たぶんそれは目的ではないので省く)
____</p>
___</section>
__</section>
__<aside><!-- 本文と直接関係ない(asideな)記事 -->
___<h3>アクセスランキング(エンタメ)</h3>
___<ol>
____<li>海老蔵、病室の麻央夫人を見舞う
_____<p>
______<span class="source">スポーツ報知</span>
______<span class="date">6月12日(日)1時24分</span>
_____</p>
____</li>
____<li>GACKT、抜き打ちで薬物検査受ける 手を染める有名人に怒り「何やってんだ」
_____<p>
______<span class="source">スポニチアネックス</span>
______<span class="date">6月11日(土)9時35分</span>
_____</p>
____</li>
____<li>円楽の謝罪を宮根らが絶賛!「これだけリポーターが聞き入る会見ない」
_____<p>
______<span class="source">サンケイスポーツ</span>
______<span class="date">6月10日(金)15時50分</span>
_____</p>
____</li>
___</ol>
__</aside>
_</section>
_<footer>
__<h3>A nice footer</h3>
_</footer>
</body>
</html>
</html>
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP アップロード画像数でCSSを分けることに成功したのですが、画像の横に文字を並べることが出来ません。 3 2023/07/28 17:16
- HTML・CSS スクロールすると追従する画像のコードを書いているのですが、追従する画像の大きさの調節が上手くいきませ 2 2022/04/18 12:52
- HTML・CSS サルワカさんの吹き出しのスタイルシートについて。 https://saruwakakun.com/h 2 2022/10/28 22:55
- HTML・CSS 【HTML】【CSS】【Swiper】 元の画像は横1200×縦600なのですが、実際のサイト上に反 5 2022/07/16 13:57
- JavaScript html5に変えるとスライドショーが消えてしまった。 3 2022/03/26 19:53
- その他(プログラミング・Web制作) 次に、楽天のアジャイル就活に参加して、1日で内定を獲得できる。私は大企業に就職できる? 2 2022/04/17 13:38
- HTML・CSS CSSでサイトの背景に画像を組み込みたいのですが反映されません 2 2022/11/22 16:21
- JavaScript HTML&CSS Javascriptによる動的テーブル 1 2023/03/27 19:51
- HTML・CSS WEBサイトの構築。表示データとWEBデザインを分離する考え方を専門用語・業界用語では何と言うか? 8 2022/09/27 09:16
- モニター・ディスプレイ Displayport接続時にディスプレイ設定の一部の項目がチラついて変更できない 3 2022/07/31 10:06
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
HTMLで組織図を作成する方法
-
HTML5のfooterに見出しを付けて...
-
レスポンシブWebデザインでリン...
-
ボタンを横に並べて表示させる方法
-
リストの並べ替え
-
プルダウンメニューの背景色を...
-
なぜ?マウスオーバーで1pt位置...
-
ulタグやliタグの中でbrタグ...
-
番号付きリスト(<Ol><Li>・・...
-
divタグ内のコンテンツが重なっ...
-
IEで<td>の全角を有効にする方法
-
<ol><li> 左側にスペースがで...
-
【至急】ul li 行間調整ができ...
-
<ul><li></li></ul>にするメリ...
-
html <ul></ul>の並びで一行空...
-
メニューバーのラインの作り方
-
左メニューをCSSで固定したい
-
<li>で改行する横並びのメニュー
-
CSS「table-cell」で横並びにし...
-
HTMLです
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
リストマーカーをボックス内に...
-
<table>の高さ固定。情報増加時...
-
ulタグやliタグの中でbrタグ...
-
html/cssの、navを2段にする...
-
リストの数字のフォントサイズ...
-
liタグの中に<p>タグやら<dl>を...
-
CSSでつくったメニューのアニメ...
-
htmlの<ol>タグで、数字などを...
-
ページを開いているときのリン...
-
リンク文字同士の間隔を開ける...
-
レスポンシブWebデザインでリン...
-
<ul><li></li></ul>にするメリ...
-
divタグ内のコンテンツが重なっ...
-
HTMLで組織図を作成する方法
-
ulとliで囲った文字の一部を変...
-
HTML5のfooterに見出しを付けて...
-
<ul>~</ul>が二つ続くと間に改...
-
html <ul></ul>の並びで一行空...
-
複数行にまたがる括弧を表示し...
-
画像にリンクを張ると画像がず...
おすすめ情報