4-4 下拉框定位二三事
本节编程练习不计算学习进度,请电脑登录imooc.com操作

下拉框定位二三事

下拉框定位二三事

任务

老师视频里的不同布局写法,不是习题!!不是习题!!!

  1. <!doctype html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>下拉框定位二三事</title>
  6. <style>
  7. body { margin: 0; font: 14px/1.4 "Microsoft YaHei"; background-color: #EDEFF0; }
  8. .constr { width: 1200px; max-width: 80%; margin-left: auto; margin-right: auto; padding-bottom: 300px; overflow: hidden; }
  9. .course-sidebar { width: 262px; float: left; }
  10. .course-sidebar > div { border: 1px solid #e6e8e9; box-shadow: 0px 1px 2px #d5d7d8; background-color: #fff; }
  11. .course-sidebar-type { height: 380px; }
  12. .course-sidebar-search { margin-top: 20px; overflow: hidden; }
  13. .course-search-input { width: 200px; line-height: 18px; padding: 10px; margin: 0; border: 0 none; font-size: 12px; font-family: inherit; float: left; }
  14. .course-sidebar-search.focus { border-color: #2ea7e0; }
  15. .course-search-input:focus { outline: 0 none; }
  16. .course-search-input::-ms-clear { display: none; }
  17. .course-search-btn { width: 38px; height: 38px; float: right; background: url(http://img1.sycdn.imooc.com//545305ba0001f3f600380076.png); text-indent: -9em; overflow: hidden; }
  18. .focus .course-search-btn { background-position: 0 -38px; }
  19.  
  20. .course-sidebar-result { display: none; position: absolute; width: 260px; margin: 39px 0 0 -1px; padding-left: 0; list-style-type: none; border: 1px solid #e6e8e9; background-color: #fff; box-shadow: 0px 1px 2px #d5d7d8; font-size: 12px; }
  21. .course-sidebar-result > li { line-height: 30px; padding-left: 12px; }
  22. .course-sidebar-result > li:hover { background-color: #f9f9f9; }
  23. .course-sidebar-result a { display: block; color: #5e5e5e; text-decoration: none; }
  24. .course-sidebar-result a:hover { color: #000; }
  25. </style>
  26. </head>
  27.  
  28. <body>
  29. <div class="constr">
  30. <div class="course-sidebar">
  31. <div class="course-sidebar-type"></div>
  32. <div class="course-sidebar-search">
  33. <ul id="result" class="course-sidebar-result">
  34. <li><a href="http://www.imooc.com/view/121">分享:CSS深入理解之float浮动</a></li>
  35. <li><a href="http://www.imooc.com/view/118">案例:CSS圆角进化论</a></li>
  36. <li><a href="http://www.imooc.com/view/93">案例:CSS Sprite雪碧图应用</a></li>
  37. <li><a href="http://www.imooc.com/view/77">案例:CSS3 3D 特效</a></li>
  38. <li><a href="http://www.imooc.com/view/57">案例:如何用CSS进行网页布局</a></li>
  39. </ul>
  40. <input class="course-search-input" placeholder="课程搜索">
  41. <a href="javascript:" class="course-search-btn">搜索</a>
  42. </div>
  43. </div>
  44. </div>
  45. <script>
  46. (function() {
  47. var input = document.getElementsByTagName("input")[0],
  48. result = document.getElementById("result");
  49.  
  50. if (input && result) {
  51. input.onfocus = function() {
  52. this.parentNode.className = "course-sidebar-search focus";
  53. if (this.value != "") {
  54. // show datalist
  55. result.style.display = "block";
  56. }
  57. };
  58. input.onblur = function() {
  59. if (this.value == "") {
  60. this.parentNode.className = "course-sidebar-search";
  61. }
  62. // hide datalist
  63. result.style.display = "none";
  64. };
  65.  
  66. // IE7 that wrap a DIV for avoid bad effect from float
  67. if (!document.querySelector) {
  68. var div = document.createElement("div");
  69. input.parentNode.insertBefore(div, input);
  70. div.appendChild(result);
  71. }
  72. // events of datalist
  73. if ("oninput" in input) {
  74. input.addEventListener("input", function() {
  75. if (this.value.trim() != "") {
  76. result.style.display = "block";
  77. } else {
  78. result.style.display = "none";
  79. }
  80. });
  81. } else {
  82. // IE6-IE8
  83. input.onpropertychange = function(event) {
  84. event = event || window.event;
  85. if (event.propertyName == "value" && /focus/.test(this.parentNode.className)) {
  86. if (this.value != "") {
  87. result.style.display = "block";
  88. } else {
  89. result.style.display = "none";
  90. }
  91. }
  92. }
  93. }
  94. }
  95.  
  96. })();
  97. </script>
  98. </body>
  99. </html>
下一节