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

html 如何只通过 CSS 控制图片在新窗口打开

  •  
  •   ggp1ot2 · Nov 29, 2022 · 2270 views
    This topic created in 1287 days ago, the information mentioned may be changed or developed.

    rt 。

    只能在<style>中修改页面 css 或者在<script>中添加 js 代码,无法修改 html 标签的内容。

    如何实现控制点击 a 标签下的图片,在新窗口打开?

    貌似无法在 css 中设置 html 标签 target = _blank,尝试设置 img css 的属性也不行

    target-name:new;
    target-new:tab;
    

    我尝试使用在 head 下添加 <base target="_blank">,但是这样所有可以点击的按钮都在新窗口打开了。

    有没有办法只通过 css 来实现,只有 img 标签在新窗口打开

    5 replies    2022-11-29 13:09:52 +08:00
    libook
        1
    libook  
       Nov 29, 2022
    可以写 JS 不就可以在运行时操作 HTML 了嘛。document.querySelector 选中要操作的图片 DOM ,然后 setAttribute target 改成_blank
    TGl2aWQgIFNC
        2
    TGl2aWQgIFNC  
       Nov 29, 2022
    同楼上,那就用 js 去修改 DOM 呗
    gra
        3
    gra  
       Nov 29, 2022
    js 简单,还不用考虑兼容
    BeijingBaby
        4
    BeijingBaby  
       Nov 29, 2022
    a[href="http"] { target: new; target-name: new; target-new: tab; }
    thinkershare
        5
    thinkershare  
       Nov 29, 2022
    纯 CSS 理论上来说可以实现,但是因为浏览器并没有实现你要的规范,因此目前此问题无解。
    本来应该生效的方案:a:has(img) { target-new:tab; target-name:new; }
    但是: 目前没有任何浏览器实现 target property css rule 。
    另外,此问题 SO 上面已经有此问题的完整答案了,没必要在这里提问了。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3268 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 40ms · UTC 12:13 · PVG 20:13 · LAX 05:13 · JFK 08:13
    ♥ Do have faith in what you're doing.