前端新手求教!
首先看下我的代码:
<!doctype html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>我的相册</title> <style type="text/css"> body { font-family: "Helvetica","Arial",sans-serif; color: #333; background-color: #ccc; margin: 1em 10%; } h1 { color:#333; background-color: transparent; } a { color:#c60; background-color: transparent; font-weight: bold; text-decoration:none; } li { float: left; padding: 1em; list-style: none; } img { clear:both; display: block; } </style> </head> <body> <h1>我的相册</h1> <ul> <li> <a href="images/pig.png" title="I'm pig!" onclick="showPic(this);return false;">Pig</a> </li> <li> <a href="images/rabit.png" title="I'm rabit!" onclick="showPic(this);return false;">Rabit</a> </li> <li> <a href="images/house.png" title="I'm house!" onclick="showPic(this);return false;">house</a> </li> <li> <a href="images/monkey.png" title="I'm monkey!" onclick="showPic(this);return false;">monkey</a> </li> </ul> <img id="placeHolder" alt="image" src="images/pig.png"/> <p id="description">Choose an image.</p> <script type="text/javascript"> function showPic(whichPic){ var source = whichPic.getAttribute("href"); var placeHolder = document.getElementById("placeHolder"); placeHolder.setAttribute("src",source); var text = whichPic.getAttribute("title"); var description = document.getElementById("description"); console.log(description); description.firstChild.nodeValue = text; } </script> </body> </html>
主要目的是让img另起一行,但是由于我对li使用了float。
因此img需要添加样式:
clear:both清除浮动
display:block 转换成块级元素
问题来了,既然是转换成块级元素,img才能另起一行。
那么我用div把img包起来,也是相当于一个新的块级元素。
但是却没有达到换行的效果?为什么?
【div包起来】的这种块级元素,和img【使用display:block转换成的块级元素】有什么不同?
原来div可以达到效果的,只是我在用div包起来的时候,没有对div使用clear:both,因此div仍然有float的效果。
大家都是块, 有什么不同的呢。 div默认就是块