初心者な質問でごめんなさいm(==)m
リキッドレイアウトに初挑戦中で、
画像の下に、jqueryで横スライドショーを入れる予定です。
上に入れる画像とdivの高さをautoや100%にした場合、
下にスライダーを入れているのですが、
最初にパソコンで表示される時に
画像の下にスライダーがくるように
調節するとtopが670pxですが、
ブラウザーサイズを変更すると、
上の画像が縮んでも、スライダーは同じ位置に残るので、
空間が出来てしまいます。
このスライダーの位置を、上の画像とdivに対して、
縮んだ時、ついてくるようにするにはどのように
書いたらよいでしょうか(;;)?
よろしくお願いしますm(==)m
<div id="contener">
<article>
<div class="clearfix" id="stage">
<img src="img/0.jpg" alt="1" />
</div>
</article>
<div class="clear"></div>
<article>
<div id="slide">
<ul id="slideIn">
<li><a href="1.html"><img src="img/1.jpg" alt="1" /></a>
<p>1</p></li>
<li><a href="2.html"><img src="img/2.jpg" alt="2" /></a>
<p>2</p></li>
<li><a href="3.html"><img src="img/3.jpg" alt="3" /></a>
<p>3</p></li>
</ul>
</div>
</article>
</div>
#slide {
width: 100%;
height: 120px;
overflow: hidden;
position: relative;
background-color: #FFF;
max-width: 1000px;
margin-top: 0;
margin-right: auto;
margin-bottom: 0;
margin-left: auto;
top: 670px;
}
#slideIn li p {
margin-top: 2px;
}
#slideIn {
position:absolute;/*スライドが絶対配置で移動するので、positionはabsoluteである必要があります*/
left:0;/*必要です*/
top:0;/*必要です*/
}
#slide li {
float: left;
width: 187px;
height: 120px;
margin-right: 5px;
background-color: #FFC;
font-size: 10px;
text-align: center;
}
No.2ベストアンサー
- 回答日時:
>/*スライドが絶対配置で移動するので、positionはabsoluteである必要があります*/
それはおかしいです。
【引用】____________
absolute
ボックスの位置(と場合によっては大きさ)は'top'、'right'、'bottom'、'left'プロパティで指定される。これらのプロパティはボックスの包含ブロックとの関係を示すオフセットを指定する。
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ここまで[Visual formatting model - CSS 2.1 spec (ja)( http://momdo.s35.xrea.com/web-html-test/spec/CSS … )]より
その親になる抱合ブロックがstatic以外でしたら、その位置を基準になります。
ですから、rerativeでも(floatでも)良いです。
それよりもっと大事なこと・・リンク先を示しておくので・・
HTML5のようですが、
>このスライダーの位置を、上の画像とdivに対して、
これは、基本的な間違いです。市かもとても重要な・・
なぜ、HTML5を作らなければならなかったか???
それは、HTL4.01では、構造とプレゼンテーションの分離( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html4 … )が叫ばれながら、HTML4.01では文書構造を示しきれないために、DIVやSPAN要素をid属性及び class属性と併用することで、文書に構造を付加する( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html4 … )ことしかできなかった。
★HTML4.01でも contener、clearfix、stage、clear、slide、slideInというようなID,class名はおかしい。文書構造ではなくプレゼンテーションのようですね。
★HTML5は、文書構造を明確に示すように新しい要素が追加されました。
http://standards.mitsue.co.jp/resources/w3c/TR/h …
⇒【問題2】文書内に埋め込まれた「意味」が不明確( http://www.atmarkit.co.jp/ait/articles/1008/30/n … )ページ中ほど
★HTML5では、DIVは原則として使いません。使うべきではないとされています
【引用】____________ここから
NOTE: Authors are strongly encouraged to view the div element as an element of last resort, for when no other element is suitable.
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ここまで[4.4 Grouping content — HTML5( http://www.w3.org/TR/2014/REC-html5-20141028/gro … )]より
(著者は他に適切な要素がないときの最後の最後の手段としてDIV要素を使うよう強く推奨する。)
せっかくHTML5で始められるのでしたら、以上はとても大事なことなのですよ。
その上でTMLを書くと
<body>
<article><!-- 内部にheader,section,footerをもちうるそれだけで完結する記事を示す -->
<header>
<h1><img src="img/0.jpg" alt="なんたらのページ" >
<nav><!-- ナビゲーションを示す -->
<ul>
<li>
<a href="1.html"><img src="img/1.jpg" alt="1" ></a>
<p>1</p>
</li>
<li>
<a href="2.html"><img src="img/2.jpg" alt="2" /></a>
<p>2</p>
</li>
<li>
<a href="3.html"><img src="img/3.jpg" alt="3" /></a>
<p>3</p>
</li>
</ul>
</nav>
</header>
<section>
<!-- このarticleの本文が入る -->
</section>
<footer>
</footer>
</article>
</body>
HTMLはこれで良いです。articleは一つしかないのでなくても良いです。さらにシンプルになる。
html,body{
margin:0;padding:0;
background-color:white;
}
h1,h2,h3,p,li{
margin:0
line-height:1.6em;
}
header{/* headerは・・*/
width:100%;
max-width:1000px;min-width:630px;
margin:0 auto;
background-color: white;
}
header h1 img{/* header内のh1内の画像は */
width:100%;
height:auto;
}
header nav{
position:relative;
}
header nav ul {
text-align:center;
line-height:20px;
list-style:none;
margin:0;
}
header nav ul li{
display:inline-block;
width: 187px;
height: 120px;
background-color: fuchsia;
font-size: 10px;
}
このように、スタイルを指定する要素は子孫セレクタを使って指定します。idやclassをつかって指定すると、あとで分からなくなりますよ。また示された記述方法はCSS1の時代の古いもので、CSS2以降は必ず基点セレクタから書き始めます。
※HTML5の閉じタグは/>である必要はありません。
HTML5だと、文書構造しか書かないのでメンテナンスもとても楽になります。デザインは好きに変更できるし、mediaqueryをつかって端末ごとにデザインを変えるのも楽になります。
ORUKA1951さん
ご丁寧にありがとうございますm(==)m
html5とDWの可変グリッドレイアウト、メディアクエリーも初めて使用しているので、
書いた覚えのない?cssがたくさんあって、大混乱中です;
ではデザインするからといって、divにいれる必要がないということですね!
スライドは試したところrerativeでもできました!
でも、やはり上の画像が縮んだ時に、位置が同じままで空間が空いています(^^;
何かが干渉してるんですねぇ。。。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS ヘッダーの画像にメインエリアがかぶってしまいます 1 2022/11/28 14:06
- HTML・CSS 書籍を見つつサイト造りの練習をしているのですが、見た目が一致しません 2 2022/11/28 15:00
- JavaScript html5に変えるとスライドショーが消えてしまった。 3 2022/03/26 19:53
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/30 09:10
- JavaScript vertical sliderをautoplayしたい 2 2022/08/25 14:47
- HTML・CSS テキストを画面の真ん中に配置したいです。 2 2022/11/25 16:11
- HTML・CSS CSSのホバーエフェクト 1 2023/06/19 06:53
- HTML・CSS img と p を縦中央に配置したいのですがうまくいきません。 2 2023/01/12 14:38
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
- JavaScript 画像の表示位置 3 2022/12/23 08:25
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
リンクを知らせる手のマークが...
-
画像のサイズが変わらない
-
CSSの左横に隙間ができてしまい...
-
水面の波紋
-
favicon.ico はもういらない?
-
WordPressで画像に枠が入ってし...
-
画像をラジオボタンとして使用...
-
CSSで相対パス
-
HTMLは、シングルクォートかダ...
-
画像を隙間なく配置する方法
-
HTMLでボタンを横に2つ並べる方法
-
cssによる画像リンク枠の色変更
-
html オンマウスで変化する画...
-
htmlで画像を2個ずつ並べていき...
-
ボタンをセル内一杯に表示させ...
-
画像を縦に並べたら隙間ができ...
-
アイコンと文字を並べる時アイ...
-
画像リンクの枠線の消し方
-
imgタグは何で囲むのが良いか
-
画像と背景色の幅が合わない
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ボタンをセル内一杯に表示させ...
-
リンクを知らせる手のマークが...
-
htmlで画像を2個ずつ並べていき...
-
ポップアップウィンドウのサイ...
-
画像のサイズが変わらない
-
画像の場合のみ、下線を消す方...
-
【HTML/CSS】ボタンの枠が伸び...
-
HTMLのIMAGEに。。
-
cssで、チェックボックスの画像...
-
XML画像データををHTMLで簡単に...
-
画像の横に文字をうまく配置で...
-
table で画像をピッタリとくっ...
-
画像をリンクさせると紫の枠が...
-
水面の波紋
-
3つの画像を中央に寄せて表示さ...
-
UDP通信を使うチャットプログラ...
-
レスポンシブ対応のHTML・CSS(...
-
画像とテーブルの隙間をなくす。
-
cssヘッダー画像の下に配置した...
-
画像を縦に並べたら隙間ができ...
おすすめ情報
ごめんなさい(;;)せっかくのアドバイス試してみましたが、できませんでした;
私の説明不足ですね;
入れるのはimg単体ではなくて、またまたjqueryで切り替わるスライドショーです;
clearfixのcssにzoom1とありますが、このせいでしょうか?
jqueryをサンプルから頂いて切り貼りしているので、
使ったことのないCSSの設定がいろいろあって(^^;
<div class="clearfix" id="stage">
<img src="img/1.jpg" id="img1">
<img src="img/2.jpg" id="img2">
<img src="img/3.jpg" id="img3">
<div class="clear"></div>
</div>
ヘッダーに入ってるスクリプト
<script src="respond.min.js"></script>
<script "text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8. …
<script type="text/javascript">
var flg=1; //flgに初期値1をセット
$(function(){
setInterval(function() {
switch(flg){
case 1: //flgが1の場合
//1枚目から2枚目に切り替え
$("#img1").fadeOut(1500);
$("#img2").fadeIn(700);
break;
case 2:〜
ステージ回りのCSS
#stage {
margin: 0px;
height: auto;
width: 100%;
top: 0px;
vertical-align: top;
float: left;
}
.clearfix:before, .clearfix:after { content: ""; display: table; }
.clearfix:after { clear: both; }
.clearfix {
zoom: 1;
}
可変グリッドのcssについていたこれとかも、何か影響あるでしょうか???
HTML5 表示定義
===========
article, aside, details, figcaption, figure, footer, header, hgroup, nav, section { display: block; }
audio, canvas, video { display: inline-block; *display: inline; *zoom: 1; }
audio:not([controls]) { display: none; }
[hidden] { display: none; }