css 具有多个值的最小/最大宽度/高度

s2j5cfk0  于 2023-03-05  发布在  其他
关注(0)|答案(5)|浏览(188)

2020年编辑(最小值、最大值、钳位功能)

对于任何通过搜索引擎到达这里的人:
CSS min/max/clamp函数在最近的(2020)浏览器中得到了一些支持。您可以尝试max-width: min(200px, 50%);。您可以在查看这些CSS函数的同时注意兼容性问题。

在2023年编辑(容器查询)

Container Queries已被Chrome 105、Firefox 110和iOS 16支持。
原文:
我想限制<div>的宽度不超过50%不超过200px
这意味着,当50%小于200px时,它应该具有与max-width: 50%相同的行为,否则它的行为变为max-width: 200px
我如何用CSS定义它?
(不含min function,尚不支持)

<div class="some_element">Text here</div>
<style>
.some_element {
    background: red;
    float: left;
    width: auto;
    max-width: 200px;
    max-width: 50%; /* this will override previous one, but i want both of them work */
}
</style>
pftdvrlh

pftdvrlh1#

当页面宽度未来或等于400 px时,你可以将这个规则设置为最大宽度的50%,当页面宽度大于或等于400 px时,设置为最大宽度的200 px。这听起来很像媒体查询!我首先处理较小的屏幕宽度,然后覆盖较大的宽度,这就是CSS:

.some_element {
  background: red;
  float: left;
  width: auto;
  max-width: 50%;
}
@media (min-width: 400px) {
  .some_element {
    max-width: 200px;
  }
}

如果愿意,可以交换50%200px,也可以将min-width更改为max-width

w9apscun

w9apscun2#

不能同时将max-width设置为200 px和50%。您可以将该元素放入另一个max-width为400 px的元素中:

<div id="parent">
    <div id="child">Text here</div>
</div>

#parent {
    background-color: red;
    max-width: 400px;
}
#child {
    background-color: green;
    max-width: 50%;
}
mctunoxg

mctunoxg3#

<div id="parent">
    <div id="sub">test content</div>
</div>

//参数设置

#parent {
    max-width: 200px;
}
#sub {
    width: 50%;
}
0pizxfdo

0pizxfdo4#

创建单独的类并基于outerWidth()动态添加它们

.some_element {
        background: red;
        float: left;
        width: auto;
    }

    .widthClass1{
     max-width:50%;
    }

    .widthClass2{
     max-width:200px;
    }

    $(document).ready(function(){
       if($("textDiv").outerWidth()<400){//instead of dividing by 2 I am comparing with 400
         $("textDiv").addClass('widthClass1')
       }else{
         $("textDiv").addClass('widthClass2')
       }
    });
7jmck4yq

7jmck4yq5#

您可以尝试如下所述

.some_element {
    background: red;
    float: left;
    width: auto;
    width: 50%; 
    max-width: 200px;        
}

相关问题