Css 使选择列表比容器更宽?

Css 使选择列表比容器更宽?,css,Css,我有一个有水平填充物的容器。在这个容器中有一个选择列表,我希望它是容器的全宽,就像没有应用填充一样。我可以用负的边距吗 我不能移除容器的填充物,因为容器中有很多其他元素,并且出于各种原因,我不想对每个元素都应用边距。我根本无法更改HTML 如果应用负边距,选择列表将向左移动,但不会加宽。我确信应用于容器中div的负边距的行为是不同的 这里还有其他内容 这里还有其他内容 这里还有其他内容 这里还有其他内容 1. 2. 3. div{ 背景:灰色; 填充:25px; 宽度:20%; 保证金:自动

我有一个有水平填充物的容器。在这个容器中有一个选择列表,我希望它是容器的全宽,就像没有应用填充一样。我可以用负的边距吗

我不能移除容器的填充物,因为容器中有很多其他元素,并且出于各种原因,我不想对每个元素都应用边距。我根本无法更改HTML

如果应用负边距,选择列表将向左移动,但不会加宽。我确信应用于容器中div的负边距的行为是不同的


这里还有其他内容

这里还有其他内容

这里还有其他内容

这里还有其他内容

1. 2. 3. div{ 背景:灰色; 填充:25px; 宽度:20%; 保证金:自动; } 挑选{ 宽度:100%; 1左边缘:-25像素; 右边距:-25px; 显示:块; }
如果我理解正确

更新了您的代码:

   div {
  background: grey;
  padding: 25px;
  width: 20%;
  margin: auto;
}

select {
  margin-left: -6%;
  width: 112%;
   display: block;
}

我能看到的唯一解决方案是绝对定位选择并将
设置为0

使用
width:120%
和负边距最初是有效的,但如果您需要的话,这不是一个响应性的解决方案


这可能就是您需要的:

div {
  background: grey;
  padding: 25px;
  width: 20%;
  margin: auto;
}

select {
  width: calc(100% + 50px);  /* 50px because padding is 25px left and 25px right*/
  margin-left: -25px;
  display: block;
}

div {
  background: grey;
  padding: 25px;
  width: 20%;
  margin: auto;
}

select {
  width: calc(100% + 50px);  /* 50px because padding is 25px left and 25px right*/
  margin-left: -25px;
  display: block;
}