Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Responsive design 困惑:通过纯HTML/CSS进行特殊大小调整的响应标题?_Responsive Design_Fluid Layout_Css - Fatal编程技术网

Responsive design 困惑:通过纯HTML/CSS进行特殊大小调整的响应标题?

Responsive design 困惑:通过纯HTML/CSS进行特殊大小调整的响应标题?,responsive-design,fluid-layout,css,Responsive Design,Fluid Layout,Css,我们有一个利用JavaScript的解决方案,但我也很好奇是否有一种方法可以用纯CSS实现这一点 形势 我对响应性设计相对较新,过去一直坚持定位等方法来实现我的布局。我试图创建一个简单的响应头,以特定的方式调整大小 我的困境 页眉在页面顶部是一个29px的高条,两端各有29x29个按钮。在中间,右边的按钮是一个div(对于页面标题),我想要一个最小宽度300,但我也希望它用浏览器的宽度来扩展。 这里是一个陷阱:我希望这个标题div远离左边的按钮,留下一个最大宽度为200px的间隙。一旦达到最大宽

我们有一个利用JavaScript的解决方案,但我也很好奇是否有一种方法可以用纯CSS实现这一点

形势 我对响应性设计相对较新,过去一直坚持定位等方法来实现我的布局。我试图创建一个简单的响应头,以特定的方式调整大小

我的困境 页眉在页面顶部是一个29px的高条,两端各有29x29个按钮。在中间,右边的按钮是一个div(对于页面标题),我想要一个最小宽度300,但我也希望它用浏览器的宽度来扩展。 这里是一个陷阱:我希望这个标题div远离左边的按钮,留下一个最大宽度为200px的间隙。一旦达到最大宽度的差距,我想标题div开始扩大,保持对右按钮按下。见下文


注意:我已经创建了一个用于实验的JSFIDLE,好吧,这是我目前所做的。早上编辑(有点累)

我觉得这是绝对可能的,但它确实需要javascript。如果您希望有一个200px的可用空间,则需要javascript或某种编程来告诉样式化人员这样做

 <!DOCTYPE html>
<html>
    <style>
        html, body { height: 100%; }
        #container { margin-top: 29px; }
        header { height:29px; margin: 0 49px; background-color:#999999; }

        #div1 { width: 29px; height: 100%; background-color: yellow; display: inline-block; }
        #div2 { width: 100%; height: 100%; background-color: blue; display: inline-block; }
        #div3 { width: 29px; height: 100%; background-color: red; display: inline-block; float: right;}
        #div4 { height: 100%; background-color: yellow; display: inline-block;  float: right; }
    </style>
<body>
    <div id="container">
        <header>
            <div id="div1">div1</div><div id="div2">div2</div><div id="div3">div3</div><div id="div4">div4</div>
        </header>
    </div>
</body>
    <script>
        if (parseInt(document.getElementById("div2").clientWidth) >= 200) {
            document.getElementById("div2").style.width = "200px";
        }
    </script>
</html>

html,正文{高度:100%;}
#容器{页边距顶部:29px;}
标题{高度:29px;边距:049px;背景色:#999999;}
#div1{宽度:29px;高度:100%;背景色:黄色;显示:内联块;}
#div2{宽度:100%;高度:100%;背景色:蓝色;显示:内联块;}
#div3{宽度:29px;高度:100%;背景色:红色;显示:内联块;浮点:右;}
#div4{高度:100%;背景色:黄色;显示:内联块;浮点:右;}
第1部分第2部分第3部分第4部分
if(parseInt(document.getElementById(“div2”).clientWidth)>=200){
document.getElementById(“div2”).style.width=“200px”;
}
所以我这样做不是因为有3个div,而是我做了4个——你原来的3个,但是你想考虑的白色空间,好开阔的空间,我也为它做了一个div。我还有javascript,所以当窗口超过200px的宽度时,它会将其锁定在该宽度。不幸的是,我的CSS还没有完善到极致,所以我仍在试图找到一种方法让它发挥作用。如果有人想编辑我的答案,请随意

另一件需要指出的事情是,尽管javascript在nav增长时起作用,但在缩小时却不起作用。我没有实现一种方法,如果用户决定缩小他的窗口大小,那么它就可以缩小,因为我将它设置为将宽度锁定在200px(我想解决这个问题的方法是使用
}或者{clientWidth=“100%””
?不确定。但希望这能让您走上正轨。

我已经添加了一些JavaScript,以获得我认为您想要的效果。还有一些注释可以让您了解JS代码正试图实现的目标


本质上,我正在将一个处理程序绑定到window.resize事件,计算标题中的可用空间,并从标题容器中添加或减去以保持其宽度。

我认为我的主要问题是,我不确定是否可以仅使用CSS/HTML。对此,我也将非常感谢您的建议。谢谢谢谢你的答案和片段。我已经把上面的答案奖励给了Daniel,因为它非常完整,但我也非常感谢你的回答。感谢你的有用性。不用担心,我很高兴你找到了你的答案:]我觉得很多人都会问这个问题。我仍然想知道,仅仅使用HTML/CSS是否有可能做到这一点。:-)嗯,我可能会研究一下。我以为你的答案已经解决了,但如果你愿意,我可以在今天晚些时候再处理。我会在这里更新我的答案和评论,谢谢你,丹尼尔。为了完整起见,我在你发布的JSFIDLE中添加了最小宽度,并在你的答案中更新了链接。我想这也证实了这一点如果没有JavaScript,这是不可能的?我有时过于热衷于使用JavaScript,有时甚至倾向于使用JavaScript来解决所有问题,但我无法想象
最小宽度
最大宽度
以及设置为
自动
或类似宽度的组合会在没有JS的情况下产生效果。我当然有兴趣看到这工作没有它。是的,我希望使用纯CSS,但我也在一个项目的中间。我编辑了这个问题,试图得到一个CSS答案,但这仍然是非常有用的。