teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

5

コード修正

2021/03/30 01:53

投稿

hatena19
hatena19

スコア34367

answer CHANGED
@@ -3,15 +3,13 @@
3
3
  ```css
4
4
  #slide {
5
5
  max-width:800px;
6
- padding-top: 17.25%; /* 縦横比固定 */
7
6
  margin:0 auto;
8
7
  position:relative;
9
8
  }
10
9
 
11
- #slide ul li {
10
+ #slide ul {
12
- position:absolute;
13
11
  width:100%;
14
- height: 100%;
12
+ padding-top: 17.25%;
15
13
  }
16
14
 
17
15
  #slide img {

4

コード修正、説明の改善

2021/03/30 01:53

投稿

hatena19
hatena19

スコア34367

answer CHANGED
@@ -1,19 +1,37 @@
1
1
  画像(img要素)のサイズを指定していないのが原因です。幅を#slideのサイズに合わせたいなのら、下記のように100%に指定すればいいでしょう。縦横比を維持するには`height: auto;`も追加します。
2
2
 
3
+ ```css
4
+ #slide {
5
+ max-width:800px;
6
+ padding-top: 17.25%; /* 縦横比固定 */
7
+ margin:0 auto;
8
+ position:relative;
9
+ }
3
10
 
4
- ```css
5
- #slide img {
11
+ #slide ul li {
6
12
  position:absolute;
7
- left:0;
13
+ width:100%;
8
- top:0;
9
- width: 100%; /* 追加 */
10
- height: auto; /* 追加 */
14
+ height: 100%;
11
15
  }
16
+
17
+ #slide img {
18
+ width: 100%;
19
+ height: auto;
20
+ }
21
+
22
+ @media screen and (max-width: 768px) {
23
+ #slide {
24
+ width: 100%;
25
+ }
26
+ }
12
27
  ```
13
- 追記
14
- ---
15
- よく見たら、jQueryの方でもwhdth, height を設定していますね。その部分は削除してください。
16
28
 
29
+ `padding-top: 17.25%;` の数値は画像の縦横比を設定してください。
30
+ 横800px 縦146pxの場合
31
+ 149 / 800 * 100 = 18.25
32
+
33
+ jQueryの方でもwhdth, height を設定していますが、その部分は削除してください。
34
+
17
35
  ```js
18
36
  $(function(){
19
37
  // 設定
@@ -30,13 +48,5 @@
30
48
  },$interval);
31
49
  });
32
50
  ```
33
- このままだと、li の高さが確保できませんので、CSSに下記を追加してください。
34
51
 
35
- ```css
36
- #slide ul li {
37
- width:100%;
38
- padding-top: 100%;
39
- }
40
- ```
41
-
42
52
  [CodePenサンプル](https://codepen.io/hatena19/pen/KKaMLjg)

3

サンプルリンク修正

2021/03/30 00:24

投稿

hatena19
hatena19

スコア34367

answer CHANGED
@@ -39,4 +39,4 @@
39
39
  }
40
40
  ```
41
41
 
42
- [CodePenサンプル](https://codepen.io/hatena19/pen/KKaMLjg?editors=0110)
42
+ [CodePenサンプル](https://codepen.io/hatena19/pen/KKaMLjg)

2

サンプルリンク追加

2021/03/29 08:17

投稿

hatena19
hatena19

スコア34367

answer CHANGED
@@ -37,4 +37,6 @@
37
37
  width:100%;
38
38
  padding-top: 100%;
39
39
  }
40
- ```
40
+ ```
41
+
42
+ [CodePenサンプル](https://codepen.io/hatena19/pen/KKaMLjg?editors=0110)

1

説明追記

2021/03/29 07:42

投稿

hatena19
hatena19

スコア34367

answer CHANGED
@@ -9,4 +9,32 @@
9
9
  width: 100%; /* 追加 */
10
10
  height: auto; /* 追加 */
11
11
  }
12
+ ```
13
+ 追記
14
+ ---
15
+ よく見たら、jQueryの方でもwhdth, height を設定していますね。その部分は削除してください。
16
+
17
+ ```js
18
+ $(function(){
19
+ // 設定
20
+ var $interval = 8000; // 切り替わりの間隔(ミリ秒)
21
+ var $fade_speed = 3000; // フェード処理の早さ(ミリ秒)
22
+ $("#slide ul li").css({"position":"relative","overflow":"hidden"});
23
+ $("#slide ul li").hide().css({"position":"absolute","top":0,"left":0});
24
+ $("#slide ul li:first").addClass("active").show();
25
+ setInterval(function(){
26
+ var $active = $("#slide ul li.active");
27
+ var $next = $active.next("li").length?$active.next("li"):$("#slide ul li:first");
28
+ $active.fadeOut($fade_speed).removeClass("active");
29
+ $next.fadeIn($fade_speed).addClass("active");
30
+ },$interval);
31
+ });
32
+ ```
33
+ このままだと、li の高さが確保できませんので、CSSに下記を追加してください。
34
+
35
+ ```css
36
+ #slide ul li {
37
+ width:100%;
38
+ padding-top: 100%;
39
+ }
12
40
  ```