【发布时间】:2019-05-08 23:06:21
【问题描述】:
我正在处理一个 ReactJS 项目,但我遇到了一个 CSS 问题。我将准确地解释我想要实现的目标以及我到目前为止所做的事情。
我的fluidContainer是灰色背景的div。
这是我现在拥有的:
这就是我想要实现的目标,我希望消除这个空间:
我使用了负边距并使我的流体容器更大,但这对我来说是糟糕的代码,所以这是我的反应组件:
const FluidContainer = props => (
<div
className="co-fluid-container"
>
{props.children}
</div>
);
这是我的 sass 文件和我已经尝试过的:
@import "../../appConstants/style/cssVariables.scss";
.co-fluid-container {
//TODO: améliorer la précision
margin: 0 ( calc( (#{$container-width} + (#{$grid-gutter}/2) - 99vw) /2) );
padding: 40px (calc((100vw - #{$container-width} - (#{$grid-gutter}/2))/2));
&--fluid-content {
padding: 40px 20px;
}
@media($extra-small){
// a justifier
width:calc(100vw + #{$grid-gutter}*5);
margin-left: calc(-#{$grid-gutter}*3/2);
}
@media($small) {
// a justifier
width: calc(100vw + #{$grid-gutter}*5);
margin: 0 calc(-#{$grid-gutter}*3);
padding: 40px calc(#{$grid-gutter}*3);
}
@media($medium){
width:calc(110vw);
margin-left: calc(-#{$grid-gutter}*3/2);
padding: 40px calc(#{$grid-gutter}*3);
}
@media($large){
margin: 0 ( calc( (#{$container-width} + (#{$grid-gutter}/2) - 100vw) /2));
padding: 40px (calc((100vw - #{$container-width} - (#{$grid-gutter}/2))/2));
}
}
这段代码给我带来了问题,当我尝试让我的页面响应时,这里是我在代码中使用的变量:
grid-gutter : 32 px;
container: 1170px;
extra-small: "max-width: 599px"
medium and large and small are breakpoints too ..
这是我也尝试过的一个解决方案,使用相对和绝对定位但仍然出现问题,所以我将渲染元素更改为:
const FluidContainer = props => (
<div className="co-fluid-conteneur">
<div className="co-fluid-container">{props.children}</div>
</div>
);
这就是我的风格:
.co-fluid-conteneur {
position: relative;
height: 300px;
}
.co-fluid-container {
position: absolute;
width: 100vw;
}
但这些都是结果:
【问题讨论】:
-
绝对定位... ?
-
您已删除旧问题并重新发布
-
@Vencovsky 解释更多?
-
如果设置一个元素的css Position属性为position: absolute;它将相对于第一个父元素设置其位置,其 css Position 为 relative。但是,您可以将宽度设置为您喜欢的任何内容,而不受限制。
-
是的,我明白这一点,但是如何将我的 div 向左移动,我仍然必须使用负值作为 margin 或 left 属性来做到这一点?没有?