我们可以在不使用任何框架的情况下在css中给出if else条件吗?

Posted

技术标签:

【中文标题】我们可以在不使用任何框架的情况下在css中给出if else条件吗?【英文标题】:can we give if else condition in css without using any framework [duplicate] 【发布时间】:2016-11-30 23:58:51 【问题描述】:

我在背景中有一张图片。我需要根据它来决定一些 div 的颜色。我怎样才能直接在 CSS 而不是任何脚本或 CSS 框架中实现它

if (isBackImgTower)
    color:#fff; //(then i want to apply the color #fff)

else
    color:#000;

【问题讨论】:

不,CSS 没有逻辑。为此使用类 您的问题与此类似:***.com/questions/1129699/… 您正在使用任何服务器端脚本?比如 php,jsp,asp...等 这是一个重复的问题,如果我见过的话。 【参考方案1】:

你不能。但是您可以使用此模式来实现:

.background-tower
    background-image:url('tower.jpg');


.background-sky
    background-image:url('sky.jpg');


.background-tower, .background-tower a /* <--a tags inside tower */
    color:#fff;


.background-sky 
    color:#000;

几乎你的 html 应该是这样的:

<div class='background-tower'>
    <a href="#">some text</a>
    some other text,...
</div>

【讨论】:

答案中使用的 isBackImgTower 变量在哪里。 @ismailbaig,我试图展示一个模式而不是纠正问题本身。比如教钓鱼。 ;)【参考方案2】:

没有。 CSS 不支持逻辑。

所以你需要一个像 SASS/SCSS 这样的简单逻辑的 CSS 预处理器。

SCSS 示例 [这可能无法给出确切的答案 - 只是为了了解一下]

$isBackImgTower: true;

div 
  @if $isBackImgTower == true 
    color: #fff; 
   @else 
    color: #000;
  

但是为什么不简单地使用具有background-image 属性的类呢?有什么原因吗?

例子,

div 
    color: #000;

div.isBackImgTower 
    background-image:url('images/tower.jpg');
    color: #fff;

【讨论】:

标记它赞成,因为虽然问题说它不想使用任何框架,但似乎不可能,我们需要使用任何框架。 @ismailbaig:谢谢!【参考方案3】:

首先查看 css medai 查询。如果你找不到你想要的,你使用 jquery 或替代。例如

if ($("#samplediv").attr("data-state") == "a value") 
$("#samplediv").addClass("class-for-a-value");
 else 
$("#samplediv").addClass("class-for-not-a-value");

那是一个逻辑变化的css类。你不能只使用 css 来做到这一点

【讨论】:

您如何想象使用媒体查询检查背景图像?

以上是关于我们可以在不使用任何框架的情况下在css中给出if else条件吗?的主要内容,如果未能解决你的问题,请参考以下文章

是否可以在不使用 CoreLocation 的情况下在 IOS 中获取位置?我们可以使用网络提供商获取它吗?

我们可以在不使用 GraphQL 的情况下在项目中实施 AWS-Appsync 吗?

是否可以在不做任何更改的情况下在 Android 手机中运行 JavaFX 桌面应用程序? [复制]

是否可以在不使用整个框架的情况下在 PHP 中为 ORM 安装 Kohana 库?

有没有办法在不使用 AVFoundation 框架的情况下在 iOS 中录制音频?

如何在不使用css调整第一个图像大小的情况下在Wordpress页面上调整第二个图像的大小?