• 请不要在回答技术问题时复制粘贴 AI 生成的内容
alwayshere
V2EX  ›  程序员

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

  •  
  •   alwayshere · Oct 26, 2017 · 20306 views
    This topic created in 3141 days ago, the information mentioned may be changed or developed.

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

    136 replies    2017-10-28 08:27:57 +08:00
    1  2  
    taojing10
        101
    taojing10  
       Oct 27, 2017 via Android
    没必要吧
    stephenliubp
        102
    stephenliubp  
       Oct 27, 2017
    就是 iOS 中几乎所有的东西都可以用自定义 UIView 来实现,为什么还存在那么多控件一样。道理不言而喻
    lazypu
        103
    lazypu  
       Oct 27, 2017
    我就记得三个字 语义化
    jokerjoker
        104
    jokerjoker  
       Oct 27, 2017   ❤️ 2
    如果你写个 select,别人一看代码就知道这是个下拉菜单,如果你写个 a,别人一看就知道是可以点击的超链接,如果你写个 ul 一看就是和列表有关的东西.
    一个语言最重要的部分,并不是实现怎样的功能,而代码是需要人写的,可读性永远是最重要的部分.
    youxiachai
        105
    youxiachai  
       Oct 27, 2017
    @Mark24 你是没看到正面回答的?冷嘲热讽..
    是因为 lz 压根就不回答那些问题
    allce231
        106
    allce231  
       Oct 27, 2017
    你要这样写也没人管你啊
    quxw
        107
    quxw  
       Oct 27, 2017
    是都可以用 div, 然后需要用一堆 class,来对这些 div 做分类,配置相应的默认属性。
    这时 tag 都没意义了,因为都一样的,全看 class。
    tag 这一层就被浪费了(而且是大家最熟悉一层,你自己定义的 class 别人又看不懂)。

    这个问题就像,汇编什么都能做,要高级语言干嘛。
    linus3389
        108
    linus3389  
       Oct 27, 2017
    @codehz 凡是也不是绝对的,当 webGL 足够好用的使用搞不好以后就不需要 css 和 html 标签了呢,webAsm 普及了后呢,可能又会是另一番格局,不要对现有掌握的技术与标准就绝对的肯定,保持一颗维新的心。
    dot
        109
    dot  
       Oct 27, 2017
    HTML 1.0 是从各种标签开始的……
    Persephone
        110
    Persephone  
       Oct 27, 2017
    甚至可以自己定义一个标签

    但是最大的问题是,全用 div,在一些特殊浏览器上根本无法正常显示,而且一旦脱离开 Javascript,这个网页是没法用的。

    HTML 本来就是一个文档格式,随使用者自由发挥。
    c447279704
        111
    c447279704  
       Oct 27, 2017
    简单
    xiaoxi123
        112
    xiaoxi123  
       Oct 27, 2017
    语义化
    cctv1005s927
        113
    cctv1005s927  
       Oct 27, 2017
    @Reign
    当然是最好不要 [全部] 这样做,因为你要实现复用,和一些三方的插件引入,例如 jquery,bootstrap 这样的第三方插件。
    所以最好不要将 css 和 js 混在同一个 html
    cctv1005s927
        114
    cctv1005s927  
       Oct 27, 2017
    @j

    感谢反对。

    我在回复中有举例情况 [网络状况不好时] ,

    最常见的就是 github 在国内网络不好时,导致 js 和 css 无法被加载出来,但是你依然能够看到 github 页面的基本框架,能读懂它。

    如果全是 div 的话,此时可读性就差很多。
    ty89
        115
    ty89  
       Oct 27, 2017
    可以 b 一波了
    maybeonly
        116
    maybeonly  
       Oct 27, 2017
    标签是有自己的含义的。比如 a 表示一个链接,h1 等等表示标题……
    虽然都用 div 可以渲染到差不多的样子,但是遇到辅助功能的时候就 gg 了。
    coolzjy
        117
    coolzjy  
       Oct 27, 2017
    所有的循环都可以写成递归,所有的 while 都可以写成 for,所有的 else 都可以改写成 if,那这些东西存在的意义是什么?

    写着方便,看着明白呗。
    klren0312
        118
    klren0312  
       Oct 27, 2017
    上次公司给我的页面是 axure 生成的,让我改呢,拿标签乱的。。。
    stabc
        119
    stabc  
       Oct 27, 2017
    就当多一种使用方式吧。就好像 jquery 里的.ajax 和.post
    fuermosi777
        120
    fuermosi777  
       Oct 27, 2017
    难道没人考虑标签有助于 accessibility 吗?
    caola
        121
    caola  
       Oct 27, 2017
    @alwayshere 为什么有这些标签,是为了减少学习成本,和开发成本,让开发者能快速的完成项目。
    就比如 jquery 一样,为什么那么多人使用 jquery,而不直接写原生的 js 代码?
    还不就是能更快速的实现功能,节约时间成本。
    momocraft
        122
    momocraft  
       Oct 27, 2017
    一个人的所有需求都可以用土豆解决 为什么你
    linpf
        123
    linpf  
       Oct 27, 2017
    当年,CSS 还没有出现的时候……
    Marfal
        124
    Marfal  
       Oct 27, 2017
    KuroNekoFan
        125
    KuroNekoFan  
       Oct 27, 2017
    肯定是可以的,不过一般没人这么干
    19629037902
        126
    19629037902  
       Oct 27, 2017
    一个字:方便
    daisyxdx
        127
    daisyxdx  
       Oct 27, 2017
    可读性
    seasolzombie
        128
    seasolzombie  
       Oct 27, 2017 via Android
    html5 的出现已经强调了语义化很重要,源码是给人看的,不是给机器看的。标签不同不仅仅是元素名字不同,原型也可能有差别
    UnknownR
        129
    UnknownR  
       Oct 27, 2017
    定义,方便阅读与查阅,比如使用文本处理 html 快速定位内容的时候,标签的作用就显得非常重要了
    wuxinli1025
        130
    wuxinli1025  
       Oct 27, 2017
    不仅可以用<div>标签, 还可以用自定义的标签呢。
    Vonex
        131
    Vonex  
       Oct 27, 2017
    机器怎么都是看得懂的,人就不一定了
    spolarbear
        132
    spolarbear  
       Oct 27, 2017
    就好比每句 html 都不直接写,而放在 javascript 里面写“ document.write...”的意思。。。
    Jackeriss
        133
    Jackeriss  
       Oct 27, 2017 via iPhone
    有盐就已经是咸的了,为什么还要放酱油?
    Jackeriss
        134
    Jackeriss  
       Oct 27, 2017 via iPhone
    @Jackeriss 当然是为了色香味俱全!
    millionart
        135
    millionart  
       Oct 28, 2017
    引用楼主第一句话
    “ href 属性可以用 js 的 location.href 代替”
    使用了 js 的网页不是纯 HTML

    引用楼主第二句话
    “ img 标签可以拿 background-image 配合 background-size 解决”
    background-image 和 background-size 是 HTML 中 标签 的 属性,但早期的部分浏览器并不支持这类属性,因为当时没有更高级的视觉需求,所以这些表现形式分别内嵌入了标签自身,而衍生出了不同的标签以表现样式,直到人们发现同样的页面在不同浏览器下表现的样子大相径庭,才有了这些补充

    所以回答楼主的问题:
    1 纯 div 不可能解决所有 HTML 需求
    2 多种类标签是语义化没错,但更早是一个历史问题,因此 HTML5 开始支持自定义标签了

    说点题外话:
    其实这类视觉类属性在近年已经基本不使用了,因为他们被更高级的叫做 CSS 的东西和叫做 内容样式分离 的设计思路代替了,那段时间是个混乱的时代,很多人听说过 XHTML,但少有人听说过 xml+xsl,是一种更深层的“内容表现分离”,大约在 03 年时候我尝试过这种设计,印象中魔兽世界国服第一代论坛就是采用这种技术,优点是速度极快,缺点是浏览器兼容性较差(因为思路太超前),可惜这种技术不知为何并没有被普及,现在也没人用了
    wmfei
        136
    wmfei  
       Oct 28, 2017
    如果你的代码只是给自己看,那就无所谓
    1  2  
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   967 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 94ms · UTC 20:19 · PVG 04:19 · LAX 13:19 · JFK 16:19
    ♥ Do have faith in what you're doing.