5-3 浮动与display:block化
本节编程练习不计算学习进度,请电脑登录imooc.com操作

浮动与display:block化

大家随意把玩哈。

任务

细心体会老师课程里的良苦用心。

  1. <!doctype html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>浮动与display:block化</title>
  6. <style>
  7. .ovh { overflow: hidden; }
  8. .red { color: #cd0000; }
  9. [hidden] { display: none; }
  10. </style>
  11. </head>
  12.  
  13. <body>
  14. <p id="first">这是一个没有设置<code>float</code>属性的按钮:</p>
  15. <p class="ovh"><input type="button" id="btnShow" value="点击我显示display属性值"></p>
  16. <p hidden="">此时,按钮的display属性值是:<span id="result" class="red"></span></p>
  17. <p>点击下面的按钮让上面的按钮添加<code>float: left</code>的声明:</p>
  18. <p><input type="button" id="btnAdd" value="上面的按钮添加float:left"></p>
  19. <script>
  20. var btnShow = document.getElementById("btnShow"),
  21. btnAdd = document.getElementById("btnAdd"),
  22. result = document.getElementById("result"),
  23. first = document.getElementById("first");
  24.  
  25. if (btnShow && btnAdd && result) {
  26. btnShow.onclick = function() {
  27. // 获得该按钮的display值
  28. var display = this.currentStyle? this.currentStyle.display: window.getComputedStyle(this, null).display;
  29. // 显示结果
  30. result.innerHTML = display;
  31. result.parentNode.removeAttribute("hidden");
  32. // repain fix IE7/IE8 bug
  33. document.body.className = "any";
  34. };
  35.  
  36. // 设置浮动按钮的点击事件
  37. btnAdd.onclick = function() {
  38. btnShow.style["cssFloat" in this.style? "cssFloat": "styleFloat"] = "left";
  39. // 文字描述的变化
  40. this.value = "上面的按钮已经设置了float:left";
  41. btnShow.value = "再次点击我确认display属性值";
  42. first.innerHTML = first.innerHTML.replace("没有", '<del>没有</del>');
  43. // 结果隐藏
  44. result.parentNode.setAttribute("hidden", "");
  45. // 按钮禁用
  46. this.setAttribute("disabled", "");
  47. };
  48. }
  49. </script>
  50. </body>
  51. </html>
下一节