重写父主题的CSS

时间:2015-12-04 作者:Rishabh

首先,我很清楚如何覆盖父主题的css。但在一处房产上,我遇到了很多麻烦。我的项目中有一个包含<UL> lists. 有很多<ul> 已在另一个内部使用<ul>(列表中的列表)。问题是当一个列表(<ul>) 在另一个列表中以开头(<li>) 然后列表应该以一些选项卡空间开始,但不会。因为父主题定义了如下所示的属性。

html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, font, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend 
{
background: transparent none repeat scroll 0 0;
border: 0 none;
font-size: 100%;
margin: 0;
outline: 0 none;
padding: 0;
vertical-align: baseline;
}
在父主题的上述属性中,如果删除padding: 0; 或设置padding: nonepadding: -1.我通过设置在我的子主题css中键入此属性padding: nonepadding: -1 即使有!important. 所有其他属性都可以轻松重写,但只有这些属性不能重写。谁都知道为什么。

1 个回复
最合适的回答,由SO网友:bosco 整理而成

Neither padding: none; nor padding: -1; are valid CSS, 因此被忽略。正在删除padding: 0; 从父主题中删除是不可取的,因为这会“重置”许多元素的默认浏览器应用样式(变化很大),并且可能会与您网站上预期重置的其他CSS产生问题。

您应该特别针对您希望更改的项目。所以要在嵌套的左侧添加一些空间<li> 元素,使用新规则为这些元素添加空间,而不是尝试删除父样式表应用的样式。

ul>li li {
    padding-left: 30px;
}
如果您不是父主题的作者,更改父主题样式表通常是一个坏主意。

你可能想退房this introduction to CSS 更好地掌握CSS选择器和继承。

相关推荐

在带有PHP的子主题中包含style.css

在里面https://codex.wordpress.org/Child_Themes 这是包含样式的最佳实践。css在子主题中,必须将下面的代码放入函数中。php的子主题,但将“父样式”替换为可以在函数中找到的父主题的参数。父主题的php。我在我的主题文件中找不到它,那里也没有多少代码。使用@import包含父主题样式表的方法不适用于我,放入文件的css不会在任何浏览器的站点上显示自己。function my_theme_enqueue_styles() { $parent_s