能规范用标签的地方还是规范使用。
但就我自己的经验而言,这个还真的是看项目。
<button>
有些政府机构的项目,它们不要求页面多花里胡哨,但要求页面需要严格遵循一些设计准则。
特别是字体样式,行间距,页面颜色等等……特别有些政府公告的页面,配色布局在我们看来简直不忍直视,殊不知这个布局甚至可以适配到IE 6,殊不知这个颜色是色盲和色弱人群都可以清晰辨别的配色,殊不知有些听力障碍的人事在“听”这个网页的内容时,加粗的字体是可以重音念出来的等等(我相信很多前端分不清 <strong> 和 <b> 的区别)。
这里还是要推荐下我自己建的前端学习群:733581373,如果你正在学习前端,小编欢迎你加入,大家都是前端党,不定期分享干货(只有web前端相关的),包括我自己整理的一份2018最新的前端资料和零基础入门教程,欢迎初学和进阶中的小伙伴。
对于这类项目,标签的规范使用尤为重要。该用<button>的时候别给我整些幺蛾子。
<custom-button>
对于一些产品/个人展示用的页面,项目要求是“新颖,酷炫,吊炸天”。所谓的“按钮”其实是指“拥有复杂动画效果的可点击元素”,比如仿安卓Ripple效果的按钮(虽然也可以用 button 做出来,这里供理解用),拟物的开关等等。在或者是只有部分浏览器支持的新标签/属性:<progress> <input type="date" /> 等等,为了达到浏览器兼容,通常都是用 <div> 封装。
加上现在 Chrome 为首的一众浏览器又在大力拥抱 Web Components。用户可以自定义/封装标签,打开源代码全都是见都没见过的标签等等。所以针对这部分用户而言,为打到最终的体验效果,不得不用封装过后的可点击元素。
图为 Github 源码中使用的 Web Component
为什么要用语义化标签?
语义化是给其他程序猿,更是给搜索引擎。
比如我一个页面可以这样写
<div class="body"> <div class="nav"> <div class="nav-item">Home</div> <div class="nav-item">My Articles</div> </div> <div class="sidemenu"> <div class="sidemenu-item">Like</div> <div class="sidemenu-item">Share</div> <div class="sidemenu-item">Add to favorite</div> </div> <div class="container"> <div class="heading">This is the heading</div> <div class="content"> Lorem ipsum dolor sit amet consectetur adipisicing elit. Rerum, consequuntur! </div> <div class="button">Next Page</div> </div> <div class="footer"> copyright@2018 </div> </div>
我也可以这样写
<body> <nav> <ul> <li>Home</li> <li>My Articles</li> </ul> </nav> <aside> <ul> <li>Like</li> <li>Share</li> <li>Add to favorite</li> </ul> </aside> <section> <h3>This is the heading</h3> <article> Lorem ipsum dolor sit, amet consectetur adipisicing elit. Quidem, assumenda? </article> <button>Next Page</button> </section> <footer> copyright@2018 </footer> </body>
明显后者的SEO友好程度更高,搜索引擎也更容易将你的内容准确的展示出来。
最后还是要推荐下我的web前端学习群:733581373,每天晚上20:00我都会开直播给大家分享web前端学习知识和路线方法,群里会不定期更新最新的教程和学习方法(进群送2018web前端学习教程),大家都是学习web前端的,或是转行,或是大学生,还有工作中想提升自己能力的前端党,如果你是正在学习web前端的小伙伴可以加入学习。最后祝所有程序员都能够走上人生巅峰,让代码将梦想照进现实。
如果想看到更加系统的文章和学习方法经验可以关注的微信号:‘web前端技术圈’或者‘webxh6’关注后回复‘2018’可以领取一套完整的学习视频