[ASP.NET] styleproperties mapping van .net naar css

Pagina: 1
Acties:

  • CaptBiele
  • Registratie: Juni 2002
  • Laatst online: 27-08-2021

CaptBiele

No Worries!

Topicstarter
Er zit me iets dwars omdat ik het niet snap, dus ik hoop dat jullie me wat opheldering kunnen geven.
Kan hier geen duidelijke info over vinden.

Ik snap niet hoe de style properties van server controls geparsed worden.
Stel je hebt deze asp.net code:
C#:
1
<asp:Label ID="Label1" runat="server" Text="Label" Font-Bold="true"/>


De style properties worden correct vertaald naar de mogelijkheden van de browser.
In IE 6.0 wordt het bijvoorbeeld:
HTML:
1
<span id="Label1" style="font-weight:bold;">Label</span>

Maar in FF 2.0 wordt dat:
HTML:
1
<span id="Label1"><b>Label</b></span>


Nu vraag ik me af wat er precies op de achtergrond gebeurt. Normaal spuugt .Net de html naar de browser toe. Maar nu moet er eerst gekeken worden naar wat de browser ondersteunt, en vervolgens wordt de code pas gegenereerd. Hoe wordt de css ondersteuning gechecked, en hoe verloopt die communicatie precies? Zit dat allemaal in .js files of zo? En waar staat die hardcoded mapping die er de juiste css property van maakt?

  • PhysicsRules
  • Registratie: Februari 2002
  • Laatst online: 31-03 07:26

PhysicsRules

Dux: Linux voor Eenden

Ik moet je hierop het antwoord schuldig blijven, maar met het property cssClass kun je in elk geval eenduidig de juiste css aan een label toevoegen.

Verder ben ik ook benieuwd naar het antwoord :)

  • Sybr_E-N
  • Registratie: December 2001
  • Nu online
Browser capabilities

Zo heb je in .NET ook de beschikking over een .browser file. Hierin je (per) browser specificeren wat .NET moet gaan doen (Control Adapters maken daar gebruik van.).

Nu vertel je niet met welke versie van .NET je werkt, maar tot in .NET 2.0 heb ik er iig geen last van.
(Als je al in .NET 2.0 werkt moet je even kijken naar de werking van masterpages icm theme's+skinfile's, dan hoef je je .aspxen niet meer te versieren met al die opmaak.)

  • CaptBiele
  • Registratie: Juni 2002
  • Laatst online: 27-08-2021

CaptBiele

No Worries!

Topicstarter
Sybr_E-N schreef op maandag 20 november 2006 @ 22:14:
Browser capabilities

Zo heb je in .NET ook de beschikking over een .browser file. Hierin je (per) browser specificeren wat .NET moet gaan doen (Control Adapters maken daar gebruik van.).

Nu vertel je niet met welke versie van .NET je werkt, maar tot in .NET 2.0 heb ik er iig geen last van.
(Als je al in .NET 2.0 werkt moet je even kijken naar de werking van masterpages icm theme's+skinfile's, dan hoef je je .aspxen niet meer te versieren met al die opmaak.)
Het maakt niet uit in welke versie van .Net. Volgens mij zit in alle versies zo'n mapping.
Ik weet wel hoe ik een nette opmaak kan realiseren, maar ik ben gewoon nieuwsgierig naar hoe het op de achtergrond werkt...

Ik kan niets vinden over die .browser file.... niet op google, en niet op mijn harde schijf. Kun je daar iets meer over vertellen?

  • Sybr_E-N
  • Registratie: December 2001
  • Nu online
Die mapping zat er altijd al in ja, dat klopt. Maar naar mijn idee is die in .net 2.0 iets minder strikt. Op mijn laptop gebruik ik gewoon FireFox als default browser en .net heeft daar geen moeite mee. Er wordt geen browser specifieke html mijn kant op gestuurd.

In .net 2.0, in een web-project, gewoon add new item -> Browser file.
Meer info over die file -> @msdn
Maar het gebeurd dus allemaal serverside. En met die .browser file kun je zelf aan de slag om bepaalde output te forceren.

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 18:39

gorgi_19

Kruimeltjes zijn weer op :9

CaptBiele schreef op maandag 20 november 2006 @ 22:24:
[...]

Het maakt niet uit in welke versie van .Net. Volgens mij zit in alle versies zo'n mapping.
Ik weet wel hoe ik een nette opmaak kan realiseren, maar ik ben gewoon nieuwsgierig naar hoe het op de achtergrond werkt...

Ik kan niets vinden over die .browser file.... niet op google, en niet op mijn harde schijf. Kun je daar iets meer over vertellen?
Google eens op app_browsers :) En de basis .browser bestanden staan in je .Net 2.0 folder :)

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 18:39

gorgi_19

Kruimeltjes zijn weer op :9

Sybr_E-N schreef op maandag 20 november 2006 @ 22:33:
Die mapping zat er altijd al in ja, dat klopt. Maar naar mijn idee is die in .net 2.0 iets minder strikt. Op mijn laptop gebruik ik gewoon FireFox als default browser en .net heeft daar geen moeite mee. Er wordt geen browser specifieke html mijn kant op gestuurd.
In .Net 1.1 zaten er wat bugjes in, waardoor FF als lowlevel browser werd gezien welke maximaal HTML 3.2 ondersteunde :)

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 20:36

crisp

Devver

Pixelated

Browser-sniffing op basis van user-agent string is wel zo 20e eeuw. Het is zelfs hilarisch dat MS z'n eigen browser als highlevel propageert (propageerde?) en andere browsers als lowlevel terwijl IE op technisch vlak toch echt al jaren de least dominor is.

Maar goed, inline style-properties opgeven is sowieso geen good practice. Gewoon gebruik maken van externe CSS en waar nodig classes of ID's toekennen aan elementen :)

Intentionally left blank


  • CaptBiele
  • Registratie: Juni 2002
  • Laatst online: 27-08-2021

CaptBiele

No Worries!

Topicstarter
Sybr_E-N schreef op maandag 20 november 2006 @ 22:33:
In .net 2.0, in een web-project, gewoon add new item -> Browser file.
Meer info over die file -> @msdn
Maar het gebeurd dus allemaal serverside. En met die .browser file kun je zelf aan de slag om bepaalde output te forceren.
Het gebeurt dus inderdaad allemaal serverside. Ik had het niet zo verwacht, omdat de browser files pas weer geupdate worden bij een nieuw .Net Framework. Dus als er een nieuwe browser versie verschijnt, is de css al min of meer verouderd. (zullen minimale verschillen zijn maar goed). De nieuwe browsers kunnen deze files ook niet bijwerken jammer genoeg.

De .browser file beschrijft al zijn mogelijkheden, maar ik snap nog steeds niet hoe de mapping van style properties plaats vind, bv in het geval van Font-Bold :?

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 18:39

gorgi_19

Kruimeltjes zijn weer op :9

crisp schreef op maandag 20 november 2006 @ 22:55:
Browser-sniffing op basis van user-agent string is wel zo 20e eeuw. Het is zelfs hilarisch dat MS z'n eigen browser als highlevel propageert (propageerde?) en andere browsers als lowlevel terwijl IE op technisch vlak toch echt al jaren de least dominor is.
Was achteraf ook een bugje :P :+
CaptBiele schreef op maandag 20 november 2006 @ 23:33:
Het gebeurt dus inderdaad allemaal serverside. Ik had het niet zo verwacht, omdat de browser files pas weer geupdate worden bij een nieuw .Net Framework. Dus als er een nieuwe browser versie verschijnt, is de css al min of meer verouderd. (zullen minimale verschillen zijn maar goed). De nieuwe browsers kunnen deze files ook niet bijwerken jammer genoeg.
Je kan dus eigen .browser files maken en in app_browser zetten.
De .browser file beschrijft al zijn mogelijkheden, maar ik snap nog steeds niet hoe de mapping van style properties plaats vind, bv in het geval van Font-Bold :?
Conditioneel; maar pak anders reflector en kijk eens wat er exact gebeurd :)

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • 4of9
  • Registratie: Maart 2000
  • Laatst online: 13-12-2024
Het is wel logisch denk ik. De useragent string van FF2.0 zal nog niet in de config staan en dus niet herkend worden.

Er zit ook een browser sectie in de machine.config of web.config in de framework directory en je kunt dus daar de useragent string zelf toevoegen. Dan zal de font bold wel netjes gerenderd worden.

Aspirant Got Pappa Lid | De toekomst is niet meer wat het geweest is...


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 20:36

crisp

Devver

Pixelated

4of9 schreef op dinsdag 21 november 2006 @ 08:17:
Het is wel logisch denk ik. De useragent string van FF2.0 zal nog niet in de config staan en dus niet herkend worden.
Dat is stom, als je Firefox 1.x kan matchen dan kan je ook matchen op Firefox 1.x en hoger - je kan er immers vanuit gaan dat nieuwe versies van een browser in ieder geval dezelfde capabilities heeft als de vorige versie...
Maar goed, browser-sniffing in z'n algemeenheid is stom :P
Er zit ook een browser sectie in de machine.config of web.config in de framework directory en je kunt dus daar de useragent string zelf toevoegen. Dan zal de font bold wel netjes gerenderd worden.
het is dan nog steeds niet 'netjes' en in feite is <span style="font-weight:bold"> net zo fout als <b>
Sowieso snap ik niet waarom ASP voor een label geen <label> gebruikt.

Nogmaals: styleproperties horen niet thuis in je opmaak. Het zou wat anders zijn als je een text-Emphasis property zou hebben die bijvoorbeeld een <em> of <strong> op zou leveren

;)

Intentionally left blank


  • CaptBiele
  • Registratie: Juni 2002
  • Laatst online: 27-08-2021

CaptBiele

No Worries!

Topicstarter
gorgi_19 schreef op dinsdag 21 november 2006 @ 08:12:
Je kan dus eigen .browser files maken en in app_browser zetten.
Ja dat is zeker een oplossing. denk niet dat het veel gebeurt maar ok.
gorgi_19 schreef op dinsdag 21 november 2006 @ 08:12:
Conditioneel; maar pak anders reflector en kijk eens wat er exact gebeurd :)
dat was het eerste wat ik deed, maar daarin kan ik dus helemaal niets vinden over een Font-Bold.
Het proces is me nu wel een stuk duidelijker, maar ik zie nog steeds die harde mapping niet.
Er moet toch ergens letterlijk staan dat Font-Bold=true bijvoorbeeld moet worden omgezet in font-weight:bold ?!?
4of9 schreef op dinsdag 21 november 2006 @ 08:17:
Dan zal de font bold wel netjes gerenderd worden.
Dat accepteer ik dus niet, ik wil weten hoe precies... :9
crisp schreef op dinsdag 21 november 2006 @ 10:14:
Nogmaals: styleproperties horen niet thuis in je opmaak.
Mocht je de indruk hebben dat ik dat doe, dat is niet zo :)
Maar ik wil gewoon de inner workings weten. Het is nog een klein beetje grijs....

  • 4of9
  • Registratie: Maart 2000
  • Laatst online: 13-12-2024
http://msdn2.microsoft.com/en-us/library/x3k2ssx2.aspx

daar staat wel het een en ander (er staat vast nog meer over in de msdn)

Aspirant Got Pappa Lid | De toekomst is niet meer wat het geweest is...


  • CaptBiele
  • Registratie: Juni 2002
  • Laatst online: 27-08-2021

CaptBiele

No Worries!

Topicstarter
4of9 schreef op dinsdag 21 november 2006 @ 13:15:
http://msdn2.microsoft.com/en-us/library/x3k2ssx2.aspx

daar staat wel het een en ander (er staat vast nog meer over in de msdn)
Ja, daar wordt ook beschreven dat het naar de juiste properties wordt gerendered. Maar ze gaan denk ik niet beschrijven hoe dat precies gebeurt. Heb het ook nog niet op msdn gevonden....
En kan het niet terugvinden met Reflector.

  • Sybr_E-N
  • Registratie: December 2001
  • Nu online
Font-Bold is niet 1 property, maar je zet een subproperty van de class Font (die weer onderdeel is van het control waar je mee werkt). Dus Bold is weer een property van Font. Daar is het "-"-teken voor.

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Ik denk dat CaptBiele op zoek is naar een .config, .mapping, .data of .whatever waarin staat:

code:
1
2
3
4
5
6
If UA=='firefox'
  font-bold: discard;
If UA=='opera'
  font-bold: <b><tag></b>
If UA=='IE'
  font-bold: attr:style=font-weight:bold;

Zoiets.

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • CaptBiele
  • Registratie: Juni 2002
  • Laatst online: 27-08-2021

CaptBiele

No Worries!

Topicstarter
Sybr_E-N schreef op dinsdag 21 november 2006 @ 19:27:
Font-Bold is niet 1 property, maar je zet een subproperty van de class Font (die weer onderdeel is van het control waar je mee werkt). Dus Bold is weer een property van Font. Daar is het "-"-teken voor.
Dat was me al duidelijk
RobIII schreef op dinsdag 21 november 2006 @ 23:33:
Ik denk dat CaptBiele op zoek is naar een .config, .mapping, .data of .whatever waarin staat:

code:
1
2
3
4
5
6
If UA=='firefox'
  font-bold: discard;
If UA=='opera'
  font-bold: <b><tag></b>
If UA=='IE'
  font-bold: attr:style=font-weight:bold;

Zoiets.
je slaat de spijker op zijn kop!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Dan kan ik kort zijn: Géééééééén idéééééé :+

Maar ik ben eens even gaan neuzen in wat .Net mappen; ik denk (op het eerste oog) dat dit het dichtste bij komt bij wat je zoekt:

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\CONFIG\Browsers

Toch niet :X

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • 4of9
  • Registratie: Maart 2000
  • Laatst online: 13-12-2024
Volgens mij moet je eens in de control adapters gaan rondneuzen. Daar vinden dit soort dingen plaats geloof ik.

Aspirant Got Pappa Lid | De toekomst is niet meer wat het geweest is...


Verwijderd

Volgens mij moet je hier eens kijken: http://msdn2.microsoft.com/en-us/library/x3k2ssx2.aspx

  • CaptBiele
  • Registratie: Juni 2002
  • Laatst online: 27-08-2021

CaptBiele

No Worries!

Topicstarter
Volgens mij moet jij het draadje even lezen.

  • CaptBiele
  • Registratie: Juni 2002
  • Laatst online: 27-08-2021

CaptBiele

No Worries!

Topicstarter
*Sgopju*
Pagina: 1