2017-02-05 12 views
2

私はEメールのニュースレターを作成しています。それはすべてが目以下のクラスを持っている30列で含まれていますCSSの継承と個々のスタイル

.content-text { 
    padding: 10px 10px 10px 10px !important; 
    font-size: 16px; 
    line-height: 1.3; 

    } 

各コラム上記のクラスを持っている必要がありますが、各列は異なる背景色を持っている必要があります。例:

.column--left__content { 
    background-color: #bebab1; 
    } 

したがって、column-left__contentはcontent-textからすべてを継承する必要があります。どのようにすれば最善の方法ができますか?現時点で

HTML

<table class="row"> 
    <tbody> 
    <tr> 
     <th class="small-12 large-1 columns first first--column__color " style="width:1%;"> 
     <table> 
      <tr> 
      <th> 
       <p></p> 
      </th> 
      </tr> 
     </table> 
     </th> 
     <!-- Here is how I solved this until now --> 
     <th class="small-12 large-5 columns first content-text column--left__content"> 
     <table > 
      <tr> 
      <th> 
       <h5><strong>This is headline 1</strong></h5> 
       <p class="text-left">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p> 
      </th> 
      </tr> 
     </table> 
     </th> 
    </tr> 
    </tbody> 
</table> 

は、私はとても素敵に見えないSAM <th>、中content-textcolumn--left__contentを呼び出しています。

これを行うためのベストプラクティスはどのようでしょうか?私はfx column--left__content.content-textを継承しなければならないと考えていますが、個々にスタイルもありますか?あなたと仮定すると

EDIT

答えて

1

可能な方法の1つは、CSSのnth-childセレクタを使用することです。

.wrapper { 
 
color:#fff; 
 
background-color:none; 
 
width:50%; 
 
height:3rem; 
 
line-height:3rem; 
 
font-size:1.5rem; 
 
} 
 
.wrapper p { 
 
padding:0 0 0 1rem; 
 
} 
 
.wrapper p:nth-child(1) { 
 
background: red; 
 
} 
 
.wrapper p:nth-child(2) { 
 
background: green; 
 
} 
 
.wrapper p:nth-child(3) { 
 
background: brown; 
 
}
<div class="wrapper"> 
 
    <p> col 1</p> 
 
    <p> col 2</p> 
 
    <p> col 3</p> 
 
</div>

別の可能な方法は、あなたがしたいときに使用すると、この場合に使用するだけでなく、ために、独自のbackground-colorヘルパークラスを作成することです。

.wrapper { 
 
color:#fff; 
 
background-color:none; 
 
width:50%; 
 
height:3rem; 
 
line-height:3rem; 
 
font-size:1.5rem; 
 
} 
 
.wrapper p { 
 
padding:0 0 0 1rem; 
 
} 
 
.bg_red { 
 
background: red; 
 
} 
 
.bg_green { 
 
background: green; 
 
} 
 
.bg_brown { 
 
background: brown; 
 
}
<div class="wrapper"> 
 
    <p class="bg_red"> col 1</p> 
 
    <p class="bg_green"> col 2</p> 
 
    <p class="bg_brown"> col 3</p> 
 
</div>

私は(私もそれを更新していない:)本当の使い方がなかったので)一度作った小さなjQueryプラグインに関係している第三の方法があります。しかし、コンセプトでは、単純なヘルパークラスをテキスト色と背景色に使用することが考えられます。残りはプラグインによって行われます。 HTMLにちょうど追加されなければならないクラス(CSSの何も必要ありません)は接頭辞(bgDarken-、bgLighten-、txtDarken-、txtLighten-)を持ち、1から256までの数字が続きます。スニペット。 hereがあり、Bootstrapを使用する2つの例があり、スニペットにはMaterializeフレームワークを使用した例があります。

<!doctype html> 
 

 
<html lang="en"> 
 
<head> 
 
    <meta charset="utf-8"> 
 

 
    <title>jLightenDarken Demo with Bootstrap Framework integration.</title> 
 
    <meta name="description" content="The HTML5 Herald"> 
 
    <meta name="author" content="SitePoint"> 
 
    <!-- Latest compiled and minified CSS --> 
 
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css"> 
 
    <!--[if lt IE 9]> 
 
    <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script> 
 
    <![endif]--> 
 
    <style type="text/css"> 
 
body { 
 
    color:#fff; 
 
    background-color:#ffffff; 
 
} 
 
div.alert, div.panel { 
 
background-color:#2196f3; 
 
    color:#ffffff; 
 
} 
 
</style> 
 
</head> 
 

 
<body> 
 
<div class="container-fluid"> 
 
<div class="row"> 
 
    <div class="col-xs-8 col-xs-offset-2 col-sm-8 col-sm-offset-2 col-md-8 col-md-offset-2 col-lg-8 col-lg-offset-2"> 
 
    <div class="panel panel-default bgDarken-4"> 
 
\t \t <div class="panel-body"> 
 
\t \t \t Lorem ipsum 
 
\t \t </div> 
 
\t \t <div class="panel-footer bgLighten-4 txtDarken-255"> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur lectus neque, pretium eget elit sit amet, maximus pretium libero...</div> 
 
\t </div> 
 
    <div class="panel panel-default bgDarken-8"> 
 
\t \t <div class="panel-body"> 
 
\t \t \t Lorem ipsum 
 
\t \t </div> 
 
\t \t <div class="panel-footer bgLighten-8 txtDarken-255"> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur lectus neque, pretium eget elit sit amet, maximus pretium libero...</div> 
 
\t </div> 
 
\t  <div class="panel panel-default bgDarken-16"> 
 
\t \t <div class="panel-body"> 
 
\t \t \t Lorem ipsum 
 
\t \t </div> 
 
\t \t <div class="panel-footer bgLighten-16 txtDarken-255"> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur lectus neque, pretium eget elit sit amet, maximus pretium libero...</div> 
 
\t </div> 
 
\t  <div class="panel panel-default bgDarken-24"> 
 
\t \t <div class="panel-body"> 
 
\t \t \t Lorem ipsum 
 
\t \t </div> 
 
\t \t <div class="panel-footer bgLighten-16 txtDarken-255"> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur lectus neque, pretium eget elit sit amet, maximus pretium libero...</div> 
 
\t </div> 
 
\t  <div class="panel panel-default bgDarken-40"> 
 
\t \t <div class="panel-body"> 
 
\t \t \t Lorem ipsum 
 
\t \t </div> 
 
\t \t <div class="panel-footer bgLighten-24 txtDarken-255"> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur lectus neque, pretium eget elit sit amet, maximus pretium libero...</div> 
 
\t </div> 
 
    <div class="panel panel-default bgDarken-48"> 
 
\t \t <div class="panel-body"> 
 
\t \t \t Lorem ipsum 
 
\t \t </div> 
 
\t \t <div class="panel-footer bgLighten-24 txtDarken-255"> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur lectus neque, pretium eget elit sit amet, maximus pretium libero...</div> 
 
\t </div> 
 
\t  <div class="panel panel-default bgDarken-64"> 
 
\t \t <div class="panel-body"> 
 
\t \t \t Lorem ipsum 
 
\t \t </div> 
 
\t \t <div class="panel-footer bgLighten-24 txtDarken-255"> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur lectus neque, pretium eget elit sit amet, maximus pretium libero...</div> 
 
\t </div> 
 
\t  <div class="panel panel-default bgDarken-80"> 
 
\t \t <div class="panel-body"> 
 
\t \t \t Lorem ipsum 
 
\t \t </div> 
 
\t \t <div class="panel-footer bgLighten-16 txtDarken-255"> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur lectus neque, pretium eget elit sit amet, maximus pretium libero...</div> 
 
\t </div> 
 
    <div class="panel panel-default bgDarken-96"> 
 
\t \t <div class="panel-body"> 
 
\t \t \t Lorem ipsum 
 
\t \t </div> 
 
\t \t <div class="panel-footer bgLighten-24 txtDarken-255"> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur lectus neque, pretium eget elit sit amet, maximus pretium libero...</div> 
 
\t </div> 
 
    <div class="panel panel-default bgDarken-124"> 
 
\t \t <div class="panel-body"> 
 
\t \t \t Lorem ipsum 
 
\t \t </div> 
 
\t \t <div class="panel-footer bgLighten-24 txtDarken-255"> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur lectus neque, pretium eget elit sit amet, maximus pretium libero...</div> 
 
\t </div> 
 
\t  <div class="panel panel-default bgDarken-140"> 
 
\t \t <div class="panel-body"> 
 
\t \t \t Lorem ipsum 
 
\t \t </div> 
 
\t \t <div class="panel-footer bgLighten-24 txtDarken-255"> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur lectus neque, pretium eget elit sit amet, maximus pretium libero...</div> 
 
\t </div> 
 
\t  <div class="panel panel-default bgDarken-148"> 
 
\t \t <div class="panel-body"> 
 
\t \t \t Lorem ipsum 
 
\t \t </div> 
 
\t \t <div class="panel-footer bgLighten-24 txtDarken-255"> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur lectus neque, pretium eget elit sit amet, maximus pretium libero...</div> 
 
\t </div> 
 
\t  <div class="panel panel-default bgDarken-156"> 
 
\t \t <div class="panel-body"> 
 
\t \t \t Lorem ipsum 
 
\t \t </div> 
 
\t \t <div class="panel-footer bgLighten-24 txtDarken-255"> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur lectus neque, pretium eget elit sit amet, maximus pretium libero...</div> 
 
\t </div> 
 
    <div class="panel panel-default bgDarken-164"> 
 
\t \t <div class="panel-body"> 
 
\t \t \t Lorem ipsum 
 
\t \t </div> 
 
\t \t <div class="panel-footer bgLighten-24 txtDarken-255"> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur lectus neque, pretium eget elit sit amet, maximus pretium libero...</div> 
 
\t </div> 
 
\t  <div class="panel panel-default bgDarken-192"> 
 
\t \t <div class="panel-body"> 
 
\t \t \t Lorem ipsum 
 
\t \t </div> 
 
\t \t <div class="panel-footer bgLighten-24 txtDarken-255"> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur lectus neque, pretium eget elit sit amet, maximus pretium libero...</div> 
 
\t </div> 
 
\t  <div class="panel panel-default bgDarken-224"> 
 
\t \t <div class="panel-body"> 
 
\t \t \t Lorem ipsum 
 
\t \t </div> 
 
\t \t <div class="panel-footer bgLighten-16 txtDarken-255"> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur lectus neque, pretium eget elit sit amet, maximus pretium libero...</div> 
 
\t </div> 
 
\t  <div class="panel panel-default bgDarken-255"> 
 
\t \t <div class="panel-body"> 
 
\t \t \t Lorem ipsum 
 
\t \t </div> 
 
\t \t <div class="panel-footer bgLighten-16 txtDarken-255"> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur lectus neque, pretium eget elit sit amet, maximus pretium libero...</div> 
 
\t </div> 
 
    </div> 
 

 
</div> 
 
<br /> 
 
<div class="row"> 
 
    <div class="col-xs-8 col-xs-offset-2 col-sm-8 col-sm-offset-2 col-md-8 col-md-offset-2 col-lg-8 col-lg-offset-2"> 
 
<div class="alert alert-info bgLighten-16">   Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur lectus neque, pretium eget elit sit amet, maximus pretium libero...      </div> 
 
<div class="alert alert-info bgLighten-24">   Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur lectus neque, pretium eget elit sit amet, maximus pretium libero...      </div> 
 
<div class="alert alert-info bgLighten-32">   Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur lectus neque, pretium eget elit sit amet, maximus pretium libero...      </div> 
 
<div class="alert alert-info bgLighten-40">   Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur lectus neque, pretium eget elit sit amet, maximus pretium libero...      </div> 
 
<div class="alert alert-info bgLighten-48">   Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur lectus neque, pretium eget elit sit amet, maximus pretium libero...      </div> 
 
<div class="alert alert-info bgLighten-56">   Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur lectus neque, pretium eget elit sit amet, maximus pretium libero...      </div> 
 
<div class="alert alert-info bgLighten-64">   Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur lectus neque, pretium eget elit sit amet, maximus pretium libero...      </div> 
 
<div class="alert alert-info bgLighten-80">   Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur lectus neque, pretium eget elit sit amet, maximus pretium libero...      </div> 
 
<div class="alert alert-info bgLighten-96">   Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur lectus neque, pretium eget elit sit amet, maximus pretium libero...      </div> 
 
<div class="alert alert-info bgLighten-124 txtDarken-124">   Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur lectus neque, pretium eget elit sit amet, maximus pretium libero...      </div> 
 
<div class="alert alert-info bgLighten-156 txtDarken-156">   Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur lectus neque, pretium eget elit sit amet, maximus pretium libero...      </div> 
 
<div class="alert alert-info bgLighten-164 txtDarken-164">   Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur lectus neque, pretium eget elit sit amet, maximus pretium libero...      </div> 
 
<div class="alert alert-info bgLighten-180 txtDarken-180">   Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur lectus neque, pretium eget elit sit amet, maximus pretium libero...      </div> 
 
<div class="alert alert-info bgLighten-192 txtDarken-196">   Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur lectus neque, pretium eget elit sit amet, maximus pretium libero...      </div> 
 
<div class="alert alert-info bgLighten-216 txtDarken-224">   Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur lectus neque, pretium eget elit sit amet, maximus pretium libero...      </div> 
 
<div class="alert alert-info bgLighten-232 txtDarken-248">   Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur lectus neque, pretium eget elit sit amet, maximus pretium libero...      </div> 
 
<div class="alert alert-info bgLighten-256 txtDarken-256">   Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur lectus neque, pretium eget elit sit amet, maximus pretium libero...      </div> 
 
    </div> 
 
    </div> 
 
    </div> 
 
<!-- Latest compiled and minified JavaScript --> 
 
<script src="http://code.jquery.com/jquery-2.1.4.min.js"></script> 
 
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script> 
 
<script type="text/javascript">!function(n){function t(n){return null==n||""==n||"rgba(0, 0, 0, 0)"===n||"transparent"===n}function o(n){var i=n.parent(),r=n.css("background-color");return t(r)&&(r=i&&null!=i?o(i):""),r}function r(n){var i=n.parent(),o=n.css("color");return t(o)&&(o=i&&null!=i?r(i):""),o}function s(n){var t=n.split("-"),i=[];return 2==t.length?(i.functionality=t[0],i.amount=parseInt(t[1]),i):void 0}function l(t){var o,l,a,e,h=[],c=[],u=[];for(e=0,j=0;j<t.length;j++){"txtLighten"==t&&(e=1),"txtDarken"==t&&(e=-1),o=n('div[class*="'+t+'"]');var g,f=0,p=[];for(n.each(o,function(){for($klassKolor=r(n(this)),p.push($klassKolor.match(/\d+/g)),h.push($klassKolor),l=n(this).prop("class").split(" "),k=0;k<l.length;k++)-1!=l[k].search(t)&&(a=s(l[k]),c.push(a.amount))}),f=0;f<p.length;f++){for(g=p[f],i=0;i<g.length;i++)g[i]=parseInt(g[i])+c[f]*e,g[i]>=255&&(g[i]=255),g[i]<=0&&(g[i]=0),g[i]=g[i].toString(16),g[i].length<2&&(g[i]="0"+g[i]);u.push("#"+g.join(""))}}n.each(o,function(t){n(this).css("color",u[t])})}function a(t){var r,l,a,e,h=[],c=[],u=[];for(e=0,j=0;j<t.length;j++){"bgLighten"==t&&(e=1),"bgDarken"==t&&(e=-1),r=n('div[class*="'+t+'"]');var g,f=0,p=[];for(n.each(r,function(){for($klassKolor=o(n(this)),p.push($klassKolor.match(/\d+/g)),h.push($klassKolor),l=n(this).prop("class").split(" "),k=0;k<l.length;k++)-1!=l[k].search(t)&&(a=s(l[k]),c.push(a.amount))}),f=0;f<p.length;f++){for(g=p[f],i=0;i<g.length;i++)g[i]=parseInt(g[i])+c[f]*e,g[i]>=255&&(g[i]=255),g[i]<=0&&(g[i]=0),g[i]=g[i].toString(16),g[i].length<2&&(g[i]="0"+g[i]);u.push("#"+g.join(""))}}n.each(r,function(t){n(this).css("background-color",u[t])})}n.fn.jLightenDarken=function(){l("txtLighten"),l("txtDarken"),a("bgLighten"),a("bgDarken")}}(jQuery); 
 
</script> 
 
<script type="text/javascript"> 
 
$(document).ready(function() { 
 
$('body').jLightenDarken(); 
 
}); 
 
</script> 
 
</body> 
 
</html>

はあなたが本当にそれらのそれぞれ1またはSOユーザーが YOUための最善の(またはしない)解決策になる可能性のある他が提示し、他の答えをしたいものに応じて、要約します。

0

は、HTMLは以下の通りです:

<section class="wrapper"> 
    <div class="col1"> col 1</div> 
    <div class="col2"> col 2</div> 
    <div class="col3"> col 3</div> 
</section> 

あなたのCSSは、このようなことができます:

.wrapper > div { 
    padding: 10px 10px 10px 10px !important; 
    font-size: 16px; 
    line-height: 1.3; 
} 

し、それぞれの色を持っていますクラス:

.col1 { 
    background-color: red; 
} 

.col2 { 
    background-color: green; 
} 

は、私はそれが

+0

ありがとうございます。私はちょうど私の質問を更新した。時間があるなら、あなたはそれを見てみたいです。あなたの解決策が最良の方法であることをまだ意味しますか? – Mimi

+0

原則はそのまま適用されます。ジェネリックスタイルの汎用クラスを1つ持つことができます(これは同じことをする30個のクラスを持つことを意味します。個人的には私の解決策を ".wrapper> div"よりも優先します) ...あなたの質問に答える...はい – Alex

0

一つの良い選択肢があまりにも少ないCSSを使用することになるのに役立ちます願っています。 CSS Lessの@extendコンセプトを使うことができます。

.contest-test { 
    .context-text(); /* Copies everything from .context-text down here */ 
    border: 1px solid red; 
} 

Linkここ

+0

あなたの答えをありがとう。残念ながら私はCSSを使用する必要があります。 – Mimi

0

まずこれに従ってください:要素のすべての単一の反復は同じクラスを持っている場合、あなたは間違ったことをやっています。

2番目:クラスを割り当てずに、要素CSSに基本CSSを付けることで、簡単に問題を解決できます。このような

例えば何か:

th { 
padding: 10px 10px 10px 10px !important; 
font-size: 16px; 
line-height: 1.3; 
} 

そして、あなたがそれらを必要として、あなただけの背景色クラスを追加します。