2009-06-11 11 views
3

は、これらの(非常に似て/反復)CSSクラスを宣言して使用して、より効率的な方法があります:CSSクラス名のパラメータは?

div.rounded20 
{ 
    -webkit-border-radius:20px; 
    -moz-border-radius:20px; 
} 

div.rounded15 
{ 
    -webkit-border-radius:15px; 
    -moz-border-radius:15px; 
} 

セイ多分の線に沿って何かを持つ:

div.rounded(@Y) 
{ 
    -webkit-border-radius:@Ypx; 
    -moz-border-radius:@Ypx; 
} 

そして、実際のクラスの使用法

<div class="rounded(15)" ...> 

ている任意の提案は...

01 jqueryのか、別のスタイリング方法を使用することを含む、歓迎されています
+0

純粋なCSSではないが、Ryanは素敵なフレームワークの答えを提供する – annakata

+0

Ryan Oberoiは素晴らしい提案をしてくれますが、私の小さなASP.NET MVC Webアプリケーションでは少し残念です。私はLobstrosityのアイディアがどんなクラスタグにも適用できるので、アイデアが好きです。どちらも良い答えですが、一般的な質問(CSSフレームワークを含む)を解決し、もう1つは私の特定の必要性を解決します...私は解決策としてRyanの回答を選択する必要があります。 –

答えて

4

あなたはそれを正確に行うように設計されたsass/compassソリューションを見てください。彼らはまた算術演算と変数と色のサポートを持っています。

+0

いいです、それは私の新しいものです – annakata

+0

これも聞いたことがありません。 http://wiki.github.com/chriseppstein/compassとhttp://haml.hamptoncatlin.com/docs/rdoc/classes/Sass.html右か?あなたがそれらを使ってあなたの経験のビットを追加した場合@ライアンそれは素晴らしいだろう。面白いと私に新しいブランド。 – artlung

+0

SassとHamlはHTMLとCSSのスタイリングを単純化するために作成されました。プラグインや宝石がインストールされているレールの背景から来ているのは、その場でhtmlやcssファイルの生成を自動化します。コンパスは、青写真のようなCSSフレームワークの統合を簡素化するフレームの上に構築されたフレームワークです。他の言語で使用している場合は、コマンドラインツールを使用して.sassファイルから.cssを生成することができます。 –

1

私はそれが静的であるので、まっすぐなCSSでそれをする方法はないと信じています。しかし、jqueryでそれを行う方法は間違いありません。もし、という名前の関数を設定しSetRoundedCorners(要素、半径)を言うと、このような何かを行うことができます。

function SetRoundedCorners (element, radius) { 
    $(element).css("-webkit-border-radius:" + radius +"; 
-moz-border-radius:" + radius +";"); 
} 

$("#myelement").click(function(){ 
    SetRoundedCorners(this, someRadius); 
}); 

はそれをテストしていませんが、これらの線に沿って何か作業をする必要があります。がんばろう!

EDIT:あなたは角を丸めるために使用することができますjqueryの機能もあります:

ここで見つけることができます
$(document).ready(function(){ 
$("#box1").corner(); 
}); 

http://www.malsup.com/jquery/corner/

+0

提案していただきありがとうございますが、私は見つけることができたすべてのjquery丸みのあるコーナーのソリューションを試しましたが、誰もこの状況を解決できませんでした(画像の上に画像の背景を丸めたdiv):http://www.curvycorners.net/includes/ examples/demo2.html ...この例でわかるように、私が最後に使用したソリューションであるcurvycorners.net js実装によって解決されています。 –

1

たぶん、このような何か...

HTML:

jQuery:

$("div.rounded").each 
(
    function() 
    { 
     // Calculate the radius as the number at the end of the class name. 
     var radius = $(this).attr("class").replace(/^.*?(\d+)$/, "$1"); 

     // Set both CSS properties to the calculated radius. 
     $(this).css({"-webkit-border-radius": radius + "px", "-moz-border-radius": radius + "px"}); 
    } 
); 
0

私はCSSコンパイラを使用しています。これは基本的にCSSファイルを生成します。ループ、(あなたは筋金入りの場合)などの乗算だけでなく、/加算/減算ダイナミックカラーpalletesを構築し、私が使用するものは、独自のですが、それはあなたが変数を定義することができますコンパイラを使用することによりthis one (PHP)

と非常によく似ていますあなたの "知られている"色のRGBを操作することによって.. 10%明るく、50%暗く、逆になる色が必要な場合。

関連する問題