浮动与定位实例中的问题

Posted CafeMing

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了浮动与定位实例中的问题相关的知识,希望对你有一定的参考价值。

一、在A标签内添加图片,解析的时候出现了莫名的距离。

  1. div{
  2. border:1px solid red;
  3. padding:1px;
  4. float:left;
  5. }
  6. <div>
  7. <a><imgsrc="img/pic.jpg"/></a>
  8. </div>
 
     解决办法   
     一、可以选择给父级的div添加一个font-size:0;
     二、给图片的样式添加一个vertical-align:middle;(

因为图片排列的依据是按照文字的, 可以给图片的属性添加一个 vertical-align:middle;

 
  1. div{
  2. border:1px solid red;
  3. padding:1px;
  4. float:left;
  5. /* font-size:0;*/
  6. }
  7. img{
  8. vertical-align: middle;
  9. }
  10. <div>
  11. <a><imgsrc="img/pic.jpg"/></a>
  12. </div>
           未解决                                                已解决
 

二、使用浮动问题

    想让元素在同一行显示,就可以用浮动。(当没有给宽的时候,浮动的会把元素宽由上一级父级的宽变成内容的宽)

    浮动给了,一定要给父级清除浮动,因为会有很多意想不到的影响。(除了塌陷)

    用了浮动之后,想调元素之间的距离就用margin

 

 

 这个div没有给宽,所以它的宽会依照上一级,就是body的宽。
当div使用了浮动元素后,如果它有子元素它的宽就会由子元素的内容撑开

 

 

三、使用定位问题

      因为定位是脱离文档流的,所以当子级元素使用了定位,父级的高都不再由子级内容所撑开,因此,需要给父级明确的高度。

      对于父级宽度的问题,如果没有给宽度,元素一般都会继承上一级的宽度。

    

      使用绝对定位的时候,都是要给父级一个相对定位,这个父级只需要是最高级的父级(position:relative),作为移动依据,

      而其他的子父级(position-absolute),会依据最高级父级去移动,

     子父级内的元素(position-absolute),会依据子父级去移动,而并不会依据最高父级。

     (即父级永远是子级的相对定位)

      

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <metacharset="UTF-8">
  5. <title></title>
  6. <style>
  7. #wrap,#listest,#img,{
  8. margin:0;
  9. }
  10. #wrap{
  11. width:1936px;
  12. height:1927px;
  13. background:#1d2088;
  14. position:relative;
  15. span{
  16. margin:0;
  17. padding:0;
  18. }
  19. }
  20. span{
  21. font:bold 47px/47px"宋体";
  22. }
  23. }*/
  24. /*左边*/
  25. #listest{
  26. width:528px;
  27. height:1764px;
  28. background:#920783;
  29. position:absolute;
  30. /* position:relative;*//*这里的元素是上级的子元素,是下级的父元素,它的绝对定位是从它的父级开始,但是它子级的绝对定位是从它开始。所以不用给它设置relative*/
  31. top:100px;/*意思就是,如果父级永远是子级的相对定位。*/
  32. left:36px;
  33. }
  34. #listest span{
  35. /*margin-left:7px;*/
  36. }
  37. #img{
  38. width:428px;
  39. height:1492px;
  40. background:#89c997;
  41. position:absolute;
  42. top:221px;
  43. left:48px;
  44. }
  45. #img span{
  46. position:absolute;
  47. top:239px;
  48. left:176px;
  49. }
  50. /*中间*/
  51. #box{
  52. width:750px;
  53. height:1756px;
  54. background:#00561f;
  55. position:absolute;
  56. top:116px;
  57. left:660px;
  58. }
  59. #box span{
  60. position:absolute;
  61. left:42px;
  62. top:12px;
  63. }
  64. #header{
  65. position:absolute;
  66. width:620px;
  67. height:284px;
  68. background:#00a0e9;
  69. left:88px;
  70. top:68px;
  71. }
  72. #header span{
  73. position:absolute;
  74. top:44px;
  75. left:78px;
  76. }
  77. #nav{
  78. width:660px;
  79. height:612px;
  80. background:#00a0e9;
  81. position:absolute;
  82. top:420px;
  83. left:60px;
  84. }
  85. #nav span{
  86. position:absolute;
  87. top:125px;
  88. left:82px;
  89. }
  90. #footer{
  91. width:680px;
  92. height:668px;
  93. background:#00a0e9;
  94. position:absolute;
  95. top:1076px;
  96. left:48px;
  97. }
  98. #footer span{
  99. position:absolute;
  100. left:37px;
  101. }
  102. #li{
  103. width:560px;
  104. height:193px;
  105. background:#b28850;
  106. position: absolute;
  107. top:60px;
  108. left:72px;
  109. }
  110. #li span{
  111. position:absolute;
  112. top:37px;
  113. left:144;
  114. }
  115. #img1{
  116. width:173px;
  117. height:209px;
  118. background:#b28850;
  119. position:absolute;
  120. top:380px;
  121. left:48px;
  122. }
  123. #img1 span{
  124. position:absolute;
  125. top:50px;
  126. left:69px;
  127. }
  128. #img2{
  129. width:181px;
  130. height:204px;
  131. background:#b28850;
  132. position:absolute;
  133. top:405px;
  134. left:294px;
  135. }
  136. #img2 span{
  137. position:absolute;
  138. top:66px;
  139. left:71px;
  140. }
  141. #img3{
  142. width:131px;
  143. height:184px;
  144. background:#b28850;
  145. position:absolute;
  146. right:0px;
  147. top:425px;
  148. }
  149. #img3 span{
  150. position: absolute;
  151. top:55px;
  152. left:20px;
  153. }
  154. /*右边*/
  155. #lastest{
  156. width:433px;
  157. height:1833px;
  158. background:#fff100;
  159. position:absolute;
  160. top:76px;
  161. right:28px;
  162. }
  163. #lastest span{
  164. position:absolute;
  165. top:-8px;
  166. left:84px;
  167. }
  168. #h2{
  169. width:348px;
  170. height:117px;
  171. background:#a84200;
  172. position:absolute;
  173. top:44px;
  174. right:24px;
  175. }
  176. #h2 span{
  177. position:absolute;
  178. top:29px;
  179. left:53px;
  180. }
  181. #h3{
  182. width:304px;
  183. height:280px;
  184. background:#8c97cb;
  185. position:absolute;
  186. right:51px;
  187. top:278px;
  188. }
  189. #h3-1{
  190. width:192px;
  191. height:88px;
  192. background:red;
  193. position:absolute;
  194. top:28px;
  195. right:52px;
  196. }
  197. #h3-1 span{
  198. position: absolute;
  199. top:22px;
  200. right:43px;
  201. }
  202. #h3-2{
  203. width:208px;
  204. height:96px;
  205. background:red;
  206. position:absolute;
  207. bottom:12px;
  208. right:28px;
  209. }
  210. #h3-2 span{
  211. position:absolute;
  212. top:34px;
  213. left:86px;
  214. }
  215. #h4{
  216. width:325px;
  217. height:300px;
  218. background:#8c97cb;
  219. position:absolute;
  220. top:633px;
  221. right:23px;
  222. }
  223. #h4-1{
  224. width:188px;
  225. height:104px;
  226. background:red;
  227. position: absolute;
  228. top:36px;
  229. right:48px;
  230. }
  231. #h4-1 span{
  232. position: absolute;
  233. top:16px;
  234. right:45px;
  235. }
  236. #h4-2{
  237. width:244px;
  238. height:84px;
  239. background:red;
  240. position:absolute;
  241. bottom:24px;
  242. right:24px;
  243. }
  244. #h4-2 span{
  245. position:absolute;
  246. top:34px;
  247. left:98px;
  248. }
  249. #h5{
  250. width:336px;
  251. height:324px;
  252. background:#8c97cb;
  253. position: absolute;
  254. bottom:493px;
  255. right:20px;
  256. }
  257. #h5-1{
  258. width:204px;
  259. height:96px;
  260. background:red;
  261. position: absolute;
  262. top:36px;
  263. right:56px;
  264. }
  265. #h5-1 span{
  266. position: absolute;
  267. top:12px;
  268. left:82px;
  269. }
  270. #h5-2{
  271. width:236px;
  272. height:112px;
  273. background:red;
  274. position: absolute;
  275. right:40px;
  276. bottom:16px;
  277. }
  278. #h5-2 span{
  279. position: absolute;
  280. top:41px;
  281. left:98px;
  282. }
  283. #end{
  284. width:340px;
  285. height:344px;
  286. background:#a6937c;
  287. position:absolute;
  288. bottom:48px;
  289. right:32px;
  290. }
  291. #end span{
  292. position: absolute;
  293. left:38px;
  294. top:84px;
  295. }
  296. </style>
  297. </head>
  298. <body>
  299. <divid="wrap">wrap
  300. <!--左边-->
  301. <divid="listest"><span>listest</span>
  302. <divid="img"><span>img</span></div>
  303. </div>
  304. <!--中间-->
  305. <divid="box"><span>box</span>
  306. <divid="header"><span>header</span></div>
  307. <divid="nav"><span>nav</span></div>
  308. <divid="footer"><span>footer</span>
  309. <divid="li"><span>li</span></div>
  310. <divid="img1"><span>img</span></div>
  311. <divid="img2"><span>img</span></div>
  312. <divid="img3"><span>img<span></div>
  313. </div>
  314. </div>
  315. <!--右边-->
  316. <divid="lastest"><span>lastest</span>
  317. <divid="h2"><span>h2</span></div>
  318. <divid="h3">
  319. <divid="h3-1"><span>h3</span></div>
  320. <divid="h3-2"><span>p</span></div>
  321. </div>
  322. <divid="h4">
  323. <divid="h4-1"><span>h3</span></div>
  324. <divid="h4-2"><span>p</span></div>
  325. </div>
  326. <divid="h5">
  327. <divid="h5-1"><span>h3</span></div>
  328. <divid="h5-2"><span>p</span></div>
  329. </div>
  330. <divid="end"><span>end</span></div>
  331. </div>
  332. </div>
  333. </body>
  334. </html>
 

 

 

 

以上是关于浮动与定位实例中的问题的主要内容,如果未能解决你的问题,请参考以下文章

浮动布局与定位布局

如何在单个活动中使用片段中的主要活动浮动操作按钮?

H5浮动与定位

浮动与定位,浮动定位(html5技术)

网页排版中的浮动和定位(学习笔记)

4浮动与定位