2015-07-10 1 views
1

Я работаю с AEM CMS, и пользователь может создать таблицу в текстовом редакторе. Это работает очень хорошо. В нашей реализации также используется bootstrap 3.1. Bootstrap устанавливает td и th padding равным 0. Это имеет приоритет над набором элементов, установленным системой, в зависимости от настроек пользователя для compoonent таблицы. Сгенерированный HTML выглядит так. Настройка доступа пользователей для сотового заполнения был установлен в 4 в этом примере ...Unset td padding

<div class="parbase table"> 
    <table width="100%" cellspacing="0" cellpadding="4" border="1"> 
    <tbody> 
    <tr><td>Hello 1</td> 
     <td>Hello2</td> 
     <td>Hello3&nbsp;</td> 
    </tr> 
    <tr> 
     <td>lsdvn dfijkn jsdvoi m orijojnl JDFIUJ</td> 
     <td>adfbsk ik</td> 
     <td>lsdvn dfijkn jsdvoi m orijojnl JDFIUJ</td> 
    </tr> 
    </tbody> 
    </table> 
</div> 

Использование Chrome Проверьте элемент можно видеть правило Bootstrap применяется. Когда я сниму это правило, таблица cellpadding вступает в силу, и td выглядит хорошо.

td, th { 
    padding: 0; 
} 

Я попытался удалить правило, используя начальное и неустановленное, но не сработало.

td, th { 
    padding: initial; /* and unset */ 
} 

Я надеюсь, что есть CSS решение, которое не участвует изменение реализации коды компоненты формирования таблицы HTML. Кроме того, поскольку мы используем CDN для bootstrap css/js, я также не хочу настраивать структуру.

Надеемся, что есть решение для CSS, так что правило бутстрапа td и th может быть отменено/удалено/удалено/и т. Д.

+0

согласно https://jigsaw.w3.org/css-validator/#validate_by_input initial - значение для заполнения. ваше право, которое не было отменено, хотя я думал, основываясь на этом https://developer.mozilla.org/en-US/docs/Web/CSS/unset, стоит попробовать. –

+0

Вы правы, CSS3 представила 'initial', http://dev.w3.org/csswg/css-cascade/#initial. Но это не поможет вам здесь, потому что это просто сбросит заполнение до его начального value, with is '0' - и для этого он будет иметь тот же эффект, что и установка отступов до' 0', что вы уже обнаружили, не помогает достичь того, что вы после него. (И 'unset' для padding снова будет просто означать' initial', потому что заполнение не наследуется.) – CBroe

+0

Что такое с тегом ExtJS? –

ответ

1

Вы можете попробовать добавить более конкретные правила, которые, если я не ошибаюсь, будет иметь приоритет над любым менее определенного правила:

div.parbase td { 
    padding: 4px; 
} 

Если это работает, вы можете вынуть CELLPADDING свойство таблицы ,

+0

Я думаю, что он должен назначить класс этой таблице и использовать ее в css, чтобы она переопределяла стиль для этой конкретной таблицы, а не каждую таблицу в элемент div (если это не то, что он хочет сделать). Он также может использовать! Важно убедиться, что он всегда будет использовать это правило. – Gabs

+0

Система помещает пользовательскую настройку в атрибут cellpadding таблицы. Выполнение вашего предложения на самом деле невозможно для меня, потому что пользовательские настройки не могут выводиться в CSS. Возможно, я мог бы сделать это inline, но надеялся не менять реализацию таблицы. –

+1

Вы пробовали использовать свойственные? – Gabs

0

Я предлагаю использовать JQuery cssText функцию:

$("td, th").css("cssText", "padding: 0 !important;"); 

Это отменит правило, после него.

+0

bootstrap уже устанавливает дополнение к 0. Я пытаюсь обойти это. По-видимому, если отступы вообще не указаны, тогда вступление в силу будет действовать. В Chrome, когда я сниму правило бутстрапа, я вижу, что заполнение вычисляется на основе атрибута cellspacing –