有办法去掉从父级元素继承下来的 CSS 样式吗?

2015-01-30 12:02:06 +08:00
 wincat

有一个页面使用了 Bootstrap,父级用了container类,我想让里面的一个div宽度扩展到屏幕一样,肿莫破?

57059 次点击
所在节点    CSS
56 条回复
jankan
2015-01-30 15:10:57 +08:00
#page-content {position:static}
#headcontent {position:absolute;width:100%;height:xxxpx;}
jarlyyn
2015-01-30 15:24:34 +08:00
@wincat 改html的吧,或者用jquery把你的子类在ready事件时移到body最后
lincanbin
2015-01-30 15:27:13 +08:00
用important覆盖样式,不要在html中插style属性,样式和HTML分离是良好习惯
Aixtuz
2015-01-30 16:23:09 +08:00
“>”: 用他的爷爷级,把属性控制在父亲级,然后孙子级就不受影响了~
eg:
#name1 > div
只有name1下的直属div 受该属性影像。 div里如果再有div是不继承的。
shanelau
2015-01-30 17:20:38 +08:00
!important; 覆盖掉所有的样式
dallaslu
2015-01-30 22:22:52 +08:00
/*
如果 #page-content 内部布局简单,可以试试。
*/

#page-content {
width: 100%;
}

#page-content > * {
margin-left: auto;
margin-right: auto;
padding-left: 15px;
padding-right: 15px;
}

#head-content {
width: 100%;
}

@media (min-width: 768px) {
#page-content > * { width: 750px; }
}

@media (min-width: 992px) {
#page-content > * { width: 970px; }
}

@media (min-width: 1200px) {
#page-content > * { width: 1170px; }
}
dallaslu
2015-01-30 22:24:05 +08:00
不好意思,@media 同学,@ 了你这么多遍!
dallaslu
2015-01-30 22:39:18 +08:00
@juicy 我觉得这并不属于继承的问题,盒模型的属性并不像字体风格一样来自父级,只能说是「适应」父级。
strivek
2015-01-30 22:55:23 +08:00
这是我简单写的demo
http://codepen.io/nailu0/pen/gbxqoy/
子元素想超过父元素宽度,最简单的方法是利用负margin值来实现
设定一个很大的margin:0 -100%;内部可以继续用container居中,col,row来布局,也可以自己灵活处理。
Agromania
2015-01-30 23:04:33 +08:00
楼主你的问题并不是继承了样式的问题,而是100%的base的问题。这个要么去掉上层所有的position:relative(可能破坏bs的布局),要么更改你的html结构,要么用js处理
0x142857
2015-01-30 23:11:25 +08:00
@loading 用 id 写 css 是不推荐的做法
baconrad
2015-01-30 23:20:55 +08:00
可以利用 calc & vw

demo: http://codepen.io/anon/pen/PwKLwq
loading
2015-01-31 05:20:51 +08:00
@0x142857 这个我知道的,感谢提醒。 ;-p
MaqicXu
2015-01-31 10:44:25 +08:00
既然这样,你就不要用container装了嘛
jarlyyn
2015-01-31 10:49:55 +08:00
@0x142857 为什么不推荐呢?如果的确不是类的语意,也不用id?
Biwood
2015-01-31 11:00:55 +08:00
这个问题怎么还在讨论,晕,根据楼主描述,这根本不是CSS继承问题,也不是CSS优先级问题,很多人都搞错方向了,楼主说的明显是HTML结构问题。

目前我想到两个办法来解决:
第一个办法我在二楼已经说了,就是让这个div脱离文档流,就是用position:absolute或者position:fixed给div定位,这样div就可以相对于document来设置宽度了。

第二个办法就是改变页面的HTML结构,你的要求是.container里面的div大于.container 本身,明显你这个结构写的不好,一般都是面积大的元素包含面积小的元素,你可以考虑改一下结构,比如让div在.container外面。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/166731

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX