【问题标题】:Change html Text with conditional css but without js使用条件css但没有js更改html文本
【发布时间】:2018-02-12 08:52:43
【问题描述】:

很抱歉这个绝对新手的问题,但我一直在寻找一个已经相似的帖子,但找不到。

我的问题是:

我的HTML 代码中有一个paragraph text,我想在单击特定的Button 后自动将其更改为新文本。

这可以只使用CSS 而不使用任何javascript 来完成吗?

由于一些用户阻止了 javascript,这就是我寻找解决方法的原因...

非常感谢。

【问题讨论】:

  • 不,只用 CSS 代码是做不到的
  • TXS。由于某些用户阻止了 javascript,这就是我寻找解决方法的原因...
  • @OvidiuUnguru ,是的,它可以stackoverflow.com/questions/27830028/…

标签: javascript css replace onclick


【解决方案1】:

实际上@Vaidya & @Preet 只能通过 css 实现:

https://css-tricks.com/swapping-out-text-five-different-ways/

@fana,您需要使用 plus selectortilde selector 来使更改影响以下 div 而不是它本身,而是您可以继续使用。

我可以看到在 stackoverflow 社区中强烈反对使用 css 替换内容。但是,除了代码清洁度之外,我还没有找到其他原因。

我真的认为,未来几年 CSS/SASS 的真正潜力将会发挥出来,人们将不再将程序化/动态视为严格排除在 CSS/SASS 之外。

【讨论】:

  • 发送了很多@tatsu。由于 JS 经常被用户屏蔽,那么 css 就成为了一种选择。为什么社区不支持它?
  • 愿意投票并将我标记为答案吗?我认为这是一个专业化一切的问题。如果您以他们专门的方式做和使用所有东西,那么理论上您将获得最佳性能、安全性、代码清洁度和一切。大多数时候它确实是这样工作的,诚然,可以评估 Css 并不是为了这个。我个人认为,就像之前java、python和javascript都以未开发的性能感到惊讶一样,css也有新生的能力。人们需要停止从表面上看待一种语言的表现,并认为它不会变得更好。
  • txs @tatsu 。赞赏。
【解决方案2】:

我知道这不是您真正想要的,但它可以让您了解它,并且您可以进行一些更改。(但是使用 css 的条件和点击事件绝对是不可能的,您需要 javascript)

如果你可以让它在文本点击本身上工作,那么它很容易实现。您只需要一个隐藏的复选框和一个标签,您将在其中显示文本。单击文本时,您可以仅使用 css 切换到另一个文本:

 #example {
      position: relative;
    }
    #example-checkbox {
      display: none;
    }
    #example-checkbox:checked + #example:after {
      content: "Hide";
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      bottom: 0;
      background: white;
    }
 <input id="example-checkbox" type="checkbox">
    <label for="example-checkbox" id="example">Show</label>
   

Reference 仅查看 css 部分。

希望对你有所帮助。

【讨论】:

  • Txs Preet。我想你的方式可能是方式......但是,我需要一种将文本更改为不同文本的方法......(作为我网站的翻译版本)......
【解决方案3】:

无法通过 CSS 完成,您必须为点击事件添加脚本。

【讨论】:

  • 你好 Vaidya。是的,这就是我最初的想法......但似乎有一些方法可以通过 css 克服它......我也在此处查看这篇文章:tympanus.net/codrops/2012/12/17/css-click-events
  • 更糟糕的是,您实际上可以通过编程方式监听发出的 css 事件。它仍然有点不确定,但是通过改进,我设法将 css 悬停(以及随后的 unhover 事件)转换为 Angular 5 Observable,并具有 css 自己的动画延迟和延迟。
  • 我给出的答案是考虑到有计划的 HTML 并且他不需要任何 Js 部分。如果您要在其中添加角度。我认为它也是js的一部分。如果您有任何替代方案可以在没有 Js 的情况下回答问题并且有计划 html,我将修改/删除我的帖子。
  • 发送很多@vaidya
  • 不过,@tatsu 提供的解决方案是部分正确的
猜你喜欢
  • 2017-04-03
  • 1970-01-01
  • 1970-01-01
  • 2022-01-01
  • 2017-08-01
  • 1970-01-01
  • 2016-11-23
  • 2023-04-04
  • 1970-01-01
相关资源
最近更新 更多