一个网站的所有 HTML 都可以用 div 标签解决,为什么还会有各种不同的标签??

2017-10-26 10:01:46 +08:00
 alwayshere

href 属性可以用 js 的 location.href 代替,img 标签可以拿 background-image 配合 background-size 解决,input 可以用 div 的 contentEditable 解决,其余的什么 p、ul、li、span 等等更不用说了,都可以解决,而且我印象中谷歌也表示过,html 标签不影响 SEO,那么我全部用纯 div 写一个网页有什么弊端?

17773 次点击
所在节点    程序员
136 条回复
alwayshere
2017-10-26 10:20:03 +08:00
@luwu1991
@lusheldon
@learnshare 你们这些比喻都是完全两码事,用 01 代码写和用 php 及 Java 写难度一样???,而用 div 写和用各种 a、p、ul、span、li 等等来写难度会不一样???无非就是提前声明一下 display 是 inline 和 block 或者预设一下他们的 margin 和 padding 而已
xudshen
2017-10-26 10:24:33 +08:00
@alwayshere。。。你先搞清楚语义化的概念,弄明白语义化究竟是为谁服务的
learnshare
2017-10-26 10:25:02 +08:00
旧文 https://github.com/LearnShare/FE/blob/master/html/semantic.md HTML 标签语义化
以及 https://www.zhihu.com/question/66934513/answer/248036488 这个开源的 6 千行 UI 框架,能打败 QT,MFC 吗?
satgi
2017-10-26 10:27:48 +08:00
@alwayshere 考虑过无障碍吗?
fzleee
2017-10-26 10:30:04 +08:00
有一些标签是具有语义性质的,比如 article, header,section 等等,浏览器的阅读模式会需要用到这些标签, 单纯的 div 不能实现
A3m0n
2017-10-26 10:33:06 +08:00
@chenyu8674 一个键的话还需要把握时间间隔,但键盘的输入我觉得很少与时间间隔有关(游戏除外)。
Mitt
2017-10-26 10:33:08 +08:00
@alwayshere 语义化不是让你看的,是让机器分析的
learnshare
2017-10-26 10:33:39 +08:00
@alwayshere 你要明白爬虫和屏幕阅读器是不看样式的,他们得到的只有 HTML

屏幕阅读器 很深奥?可以看看 Google I/O 2017: What's New in Android Accessibility

<amp-youtube data-videoid="h5rRNXzy1xo" layout="responsive" width="480" height="270"></amp-youtube>&feature=youtu.be&t=5m38s

另外,应用的可访问性是有广泛的法律和政策要求的,国内开发者和公司没时间处理这个而已
https://www.w3.org/WAI/Policy/
we2ex
2017-10-26 10:41:21 +08:00
@alwayshere 这跟非 IT 的人有什么关系,当然是为了提高开发人员效率
overflowHidden
2017-10-26 10:43:09 +08:00
所有关于 HTML 教程里都有提到过标签语义化和无障碍阅读适配,当然现在国内开发氛围来说后者都是被忽略的,更何况像楼主这种人对语义化意义是啥都不明白。代码终究是给人看的,一个单标签就能解决的事情要复杂化,写着麻烦同事看了也想骂娘。
murmur
2017-10-26 10:46:16 +08:00
既然编译器会把所有代码转成机器码 那 abcd 这样的变量用起来不是更方便?
SuperMild
2017-10-26 10:47:19 +08:00
其实很简单,因为完全用 div 的方案也没有更优秀啊,过犹不及,太少标签不好,太多标签也不好。

在 HTML5 之前,HTML 一直有不断增加标签的趋势,这其实和完全用 div 差别不大,一个比较明显的缺点就是 class 名称不统一,你用 class="img",我用 class="image",他用 class="graphic"。

到了 HTML5 其实已经精简了很多,并且做了更好的分类和用途规范。把语义和外观分开,标签负责表示语义,div 配合 css 负责展示外观。
lamada
2017-10-26 10:47:46 +08:00
无障碍于都适配 + 1,很多人不了解这一块
Cat73
2017-10-26 10:49:49 +08:00
其实可以 <canvas></canvas><script></script>
然后所有东西都用 js 生成
mengzhuo
2017-10-26 10:49:54 +08:00
楼主的想法已经出现,而且业内俗称 div soap ( div 一锅汤)

HTML= Hyper Text Markup Language
markup 啊!!!亲!!!!敲黑板了!!!!中文是标记啊!!!!!
不是纯文本啊!!!!你全标记成 div ( division 的缩写),跟没标记一样啊!!!
luoyuhui
2017-10-26 10:50:21 +08:00
语义化,然后看的比较方便
SuperMild
2017-10-26 10:53:09 +08:00
还有,完全用 div,还不如直接用 XML,XML 的标签名称是不受限制的,写成 <div class="JinGongMen"> 还不如写成 <JinGongMen>,因此,历史上还曾经出现过 XHTML,但是这样做等于把语义和外观纠缠在一起了,实践证明这样行不通,XHTML 也很快走完它短暂的一生被无情地抛弃了。
bjfane
2017-10-26 10:54:42 +08:00
语义化 可能在盲人阅读的时候有用
SuperMild
2017-10-26 10:57:17 +08:00
class 名称不统一,你用 class="img",我用 class="image",他用 class="graphic",这个问题怎么解决?

很简单,大家约定俗成统一用 class="img"就好了呀,然后,既然都约定了,为什么不简化为 <img>?最终就会编程现在 HTML5 的样子。
avrillavigne
2017-10-26 11:11:10 +08:00
经验送得还不够,继续。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/400832

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX