iT邦幫忙

0

css left 不起效 但margin-left可以?

  • 分享至 

  • xImage

先放codepen原code:
https://codepen.io/dudleystorey/pen/kBrWvm

以下為我自己寫的部分

html的部份

<base href="https://s3-us-west-2.amazonaws.com/s.cdpn.io/4273/">
<div id="slider">
<figure>
<img src="austin-fireworks.jpg" alt>
<img src="taj-mahal_copy.jpg" alt>
<img src="ibiza.jpg" alt>
<img src="ankor-wat.jpg" alt>
<img src="austin-fireworks.jpg" alt>    <---------超過4張圖片排版有出現問題
<img src="austin-fireworks.jpg" alt>
<img src="taj-mahal_copy.jpg" alt>
<img src="ibiza.jpg" alt>
<img src="ankor-wat.jpg" alt>
<img src="austin-fireworks.jpg" alt>
</figure>
</div>

css的部份

@keyframes slidy {
0% { left: 0%; }
20% { left: 0%; }
25% { left: -100%; }
45% { left: -100%; }
50% { left: -200%; }
70% { left: -200%; }
75% { left: -300%; }
95% { left: -300%; }
100% { left: -400%; }
}

body { margin: 0; } 
div#slider { overflow: hidden; }
div#slider figure img { width: 20%; float: left; }
div#slider figure { 
  position: relative;
  width: 500%;
  margin: 0;
  top: 100px;
  text-align: left;
  font-size: 0;
  animation: 30s slidy infinite; 
}
#slider{
  height: 500px;
  width: 500px;
  left: 500px;   <----  改成margin-left 
}

為何left在slider底下都不起作用,只能用margin-left,
但這屬性不是我想要的, 請問如何改寫成left 並且能夠發揮他的作用?

題外話: 如何在增加圖片時不會亂掉排版? 是修改哪一行才能與圖片數目呈正相關?

魚魚 iT邦新手 5 級 ‧ 2022-09-14 14:04:18 檢舉
加上position
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

1
hokou
iT邦好手 1 級 ‧ 2022-09-14 14:07:56

不確定這是不是你的問題
參考 MDN 這篇:https://developer.mozilla.org/zh-CN/docs/Web/CSS/left

当position设置为static时,left属性无效。

我加上position: relative就有效果了

#slider{
  position: relative;
  height: 500px;
  width: 500px;
  left: 500px;
}
看更多先前的回應...收起先前的回應...
alanotmt iT邦新手 4 級 ‧ 2022-09-14 14:18:41 檢舉

原來是這個原因,感謝,但我再多問一個問題嗎? 如果超過4張圖片時,我看他的排版就會出現問題,請問是哪一行與增加圖片數目會有關係?

hokou iT邦好手 1 級 ‧ 2022-09-14 14:47:46 檢舉

應該是 div#slider figure img { width: 20%; float: left; }
5張圖剛好佔100%,超過的就跑到下面去了
div#slider { overflow: hidden; } 先取消看看大概可以知道

@keyframes slidy 要調整
圖片多你要想像一下要怎麼過場

alanotmt iT邦新手 4 級 ‧ 2022-09-14 15:14:22 檢舉

hokou 看起來圖多還是會有問題
窮嘶發發發 如果圖多是不是用淡出淡入的效果比較不會那麼複雜?

hokou iT邦好手 1 級 ‧ 2022-09-14 15:19:00 檢舉

應該不是淡出淡入的問題

是限制在那個區塊顯示,超過的隱藏
然後調整轉場效果,讓變動時的每張圖是顯示在區域內

因此圖多超過寬度100%,圖會跑到下面是正常的
變更圖比例也要一併調整轉場效果

這方面就要讓比較熟悉的人去調整了

alanotmt iT邦新手 4 級 ‧ 2022-09-14 15:24:33 檢舉

hokou 超過的隱藏

div#slider { overflow: hidden; }

不是這句嗎? 我只是想做個幻燈片~不用動畫也沒關係,但好像網路上找到的都用到css很複雜的樣子

alanotmt iT邦新手 4 級 ‧ 2022-09-14 16:29:55 檢舉

窮嘶發發發 太感謝啦,如果要LOOP 是不是就要額外寫js的部分

她會不會 LOOP 看瀏覽器,我看過某些瀏覽器放完就停了,改JS也沒用,大多數的新版瀏覽器應該都能自動LOOP的

我要發表回答

立即登入回答