- PR -

Imageコントロールにスタイルシートの定義が反映されない

投稿者投稿内容
とら
ベテラン
会議室デビュー日: 2006/10/04
投稿数: 54
投稿日時: 2007-07-19 16:22
VisualStudio2005 ASP.NET Webサイトの開発を行っています。

Imageコントロールにスタイルシートの定義が反映されない件に関する
質問です。

Webフォームにツールボックスから、Imageコントロールを配置して、
単にImageUrlプロパティを設定しただけの状態で実行すると、当然
このときに指定したイメージが表示されますが、このときに、IEで
ソースの表示をしてみると、以下のように成っていました。

<img id="Image1" src="Images/Test.JPG" style="border-width:0px;" />

BorderWidthプロパティに対して特に何も設定している訳ではないのですが
style="border-width:0px;"の部分が生成されてしまっているようです。

この結果、別途定義したスタイルシートに対して以下のように定義しても
インラインで展開しているほうが優先される結果、スタイルシートの定義内容を
反映させることが出来ません。

#Image1
{
border-style:dashed;
border-width:5px;
}

肝心なところを見落としているかもしれないのですが、何か原因を
ご存知の方はいらっしゃらないでしょうか?


ぶさいくろう
ぬし
会議室デビュー日: 2005/11/22
投稿数: 1232
お住まい・勤務地: 川崎市(は俺も含めてロクな人間が住んでないよw)
投稿日時: 2007-07-19 16:38
Imageコントロールはimgを隠蔽しているサーバコントロールだよね。
BorderStyleがNoneの時なら納得してやるけど。
もしBorderStyleがNotSetなのに起きるようであればひどいと思う。
とら
ベテラン
会議室デビュー日: 2006/10/04
投稿数: 54
投稿日時: 2007-07-19 17:28
どうやらImageButtonでも同じ現象が発生するようです。
べる
ぬし
会議室デビュー日: 2003/09/20
投稿数: 1093
投稿日時: 2007-07-19 22:45
ほんとですね。確かにそうなる。

#Image1
{
border-style:dashed ! important;
border-width:5px ! important;
}

応急処置ですがこうすればこっちが優先されますよ。効かないブラウザがあるか、とかは調べてませんが。
かるあ
ぬし
会議室デビュー日: 2003/11/16
投稿数: 1190
お住まい・勤務地: センガワ→ムサシノ
投稿日時: 2007-07-20 00:49
どこかで見たなーと思ったらリバティさんの所か
http://cs.gogo-asp.net/blogs/libaty/archive/2006/05/03/675.aspx
http://cs.gogo-asp.net/blogs/libaty/archive/2006/05/06/678.aspx

修正が検討されているようですね。
3.5 で取り込まれるかな?
http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=112659
_________________
かるあ のメモスニペット
とら
ベテラン
会議室デビュー日: 2006/10/04
投稿数: 54
投稿日時: 2007-07-20 10:34
ベルさんが教えてくれたように、 ! importantを付加することによって
スタイルシートの設定が有効に成りました。

しかし、微妙に違和感が有るのですが・・・・

スタイルシートの設定に対して ! importantを指定したと言うことは、
「このスタイルにして欲しいけど、特に重要な意味は無いので、別の指定があればそっちを優先しても良いですよ」
という、解釈のように思えるのですが、結果からすると、「Not 重要」ではなく「重要」と指定しているような結果ですね。

もう少し、勉強してみます。

ぽぴ王子
ぬし
会議室デビュー日: 2006/03/24
投稿数: 475
お住まい・勤務地: お住まい:城・勤務地:城
投稿日時: 2007-07-20 11:17
引用:

とらさんの書き込み (2007-07-20 10:34) より:

スタイルシートの設定に対して ! importantを指定したと言うことは、
「このスタイルにして欲しいけど、特に重要な意味は無いので、別の指定があればそっちを優先しても良いですよ」
という、解釈のように思えるのですが、結果からすると、「Not 重要」ではなく「重要」と指定しているような結果ですね。


少し勘違いというか、思い違いをなさっているように感じます。
! import (私は !import と書いたりしますが)の ! は否定の意味ではあ
りません。「 !import 」という言葉そのもので「この指定を他の指定よりも
優先度を上げろ」という指示になります。
先頭に「 ! 」があることで否定の意味ととられたのだと思いますが、! が否
定を表すなんてのは C から影響を受けた言語の方言のようなものだと思
いますし、言語が違えば意味も変わってきます(HTML の < は不等号な
の?なんて誰も言いませんよね)。
_________________
ぽぴ王子@わんくま同盟
ぽぴ王子の人生プログラミング中 / ぽぴンち。
とら
ベテラン
会議室デビュー日: 2006/10/04
投稿数: 54
投稿日時: 2007-07-20 11:25
引用:

ぽぴ王子さんの書き込み (2007-07-20 11:17) より:
少し勘違いというか、思い違いをなさっているように感じます。
! import (私は !import と書いたりしますが)の ! は否定の意味ではあ
りません。「 !import 」という言葉そのもので「この指定を他の指定よりも
優先度を上げろ」という指示になります。


確かに、ご指摘のとおりです。
自分で、「Not 重要」と書いた時点で、どうやらNotでは無いのかもと思っていたところです。(笑)
しかし、なんでこのキーワードだけ!が付くのでしょうか?
強調するための「エクスクラメーション」なのかなぁ・・・

スキルアップ/キャリアアップ(JOB@IT)