是否可以为 CSS 样式执行 if else ? [复制]

Posted

技术标签:

【中文标题】是否可以为 CSS 样式执行 if else ? [复制]【英文标题】:Is it possible to do an if else for CSS styles? [duplicate] 【发布时间】:2014-11-08 14:01:12 【问题描述】:

这样做可以自动调整我页面上的图像大小。

我想做的是:

对于宽度为 320 像素的图片,将宽度设置为 50%。 对于带有其他 宽度,将宽度设置为 100%。

可以在 CSS 中实现吗?

目前我只能将宽度设置为始终 100%。

.entry-content img
width: 100% !important;

【问题讨论】:

为什么不能在 html 级别,而不是使用 css 设置图像宽度? @ChamikaSandamalHmm 喜欢使用 javascript 或 jquery?我试过这个: 将类或id分配给包含图像的元素,然后改变它们的宽度。 您使用的是哪种编程语言? @Surinderツ 这实际上是为我的wordpress 准备的。 【参考方案1】:

CSS 本身不提供条件能力。 LESS 和 SASS 是 CSS 预处理器,可以满足您的需求。我相信两者都将允许使用 Javascript,因此您可以做任何您想做的事情。

【讨论】:

CSS 预处理器确实接受 if/else 参数,但它们无法根据原生图像大小应用此条件逻辑。【参考方案2】:

你只能通过为每种类型设置 2 个类来做到这一点

.width320  width:50%;
.width_other width:100%;

【讨论】:

【参考方案3】:

其实可以,但是不推荐。如果你真的需要将 if/else 逻辑放在 css 文件中,你可以设置 apache/nginx 将这个特定的 css 文件作为 php 文件执行。然后你可以使用通常的 php 语法,只是不要忘记设置适当的标题。

【讨论】:

所以你不能用 CSS,你可以用 PHP ;)【参考方案4】:

最好用jQuery。为图像创建类

.entry-content img
   width: 100% !important;

并使用$.resize()

喜欢

$( window ).resize(function() 
     if($( window ).width() == 320)
        $( "img" ).addClass( "entry-content" );
);

更新 1:

HTML

<div id="main-content" >
    <img  src="http://oi45.tinypic.com/2u8hyjo.jpg"/>
    <img  src="http://oi47.tinypic.com/250teeh.jpg"/>    
</div>
<span class="size"></span>

CSS

.width50
    width: 50% !important;  

.width100
    width: 100% !important;

JQuery

$(window).on('resize', function()
    var box = $(this);        
    var width = box.width();
    var height = box.height();    
    if ( width < 320) 
        $("img").each(function()
            if($(this).width<400)
                $(this).addClass("width50");
            else
                $(this).addClass("width100");        
        );
     else 
        $("img").removeClass("width50 width100");
              
    $('.size').html(width+'x'+height);
).trigger('resize');

DEMO

【讨论】:

试过了,但没用。我想要做的是根据上传图像的宽度更改图像大小。这可能吗? 您必须调整窗口大小才能看到更改。创建小提琴以获得更好的帮助。 查看我的Update 1 回答。 (width 变量width存储当前窗口宽度。 ( width &lt; 320) 是窗口宽度。【参考方案5】:

这在 css 中是不可能的。 但是您可以使用@media 规则来执行此操作 @media screen 用于电脑屏幕和 @media 手持设备适用于小型或手持设备。 喜欢

  @media screen
   
     width: 100%;
   

     @media handheld
    
      width: 50%;
    

或者您可以使用 bootstrap 使图像响应,通过从 www.getbootstrap.com 或 cdn 下载 bootstrap 调整图像大小时调整图像

       //maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css

然后将类“img-responsive”添加到 img 标签。它将调整图像的高度和宽度。如果您想要固定高度,则必须使用另一个类或样式属性指定图像的高度

 <img src="" style="height:100px;">

另一种方法是使用javascript浏览器对象模型

  screen.width

并应用条件语句。我认为最好使用javascript

【讨论】:

以上是关于是否可以为 CSS 样式执行 if else ? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

使用 PHP 和 jQuery 更改 CSS 样式

if-else案例–开关灯

R语言中的if else语句

if() if() else else if() else怎么运用,请高手详细的解说一下,一定采纳!

Go语言第五篇:Go条件语句

Vue指令