In dat geval, Ozzie, pas je de momenteel aanwezige elementen aan.
Dat kunnen er bijvoorbeeld 1000 zijn, wat dus enige moeite voor je browser kost.
Daarnaast kun je door ajax calls of simpelweg javascript acties je pagina uitbreiden met elementen die ook de class width200 hebben. Deze worden dan niet automagisch aangepast naar de width 500px.
Vandaar denk ik de vraag om dat in de css-definitie aan te passen.
Ik zou dan niet width200 kiezen als naam voor de class, aangezien dit iets met 200px suggereert.
Dan zou je beter widthschermvullend of iets dergelijks kunnen nemen.
Dan verander je centraal die waarde van 200px naar 500px.
(denk trouwens ook eens aan width:100%. Al gaat dat niet op voor lettergrootte of kleuren die je mogelijk achteraf wilt bewerken)
Ik heb redelijk wat ervaring met CSS (ongeveer vanaf het begin) en deze truc nog nooit nodig gehad, maar goed ;-)
Als je een breedte dynamisch aanpast, zou ik als classname nooit "width200" gebruiken. Want iets later is hij misschien 500px breed en dat is verwarrend. Gebruik dan iets als:
In dat geval, Ozzie, pas je de momenteel aanwezige elementen aan.
Volgens mij is dat ook wat hij wil. En vandaar ook mijn vraag of ik hem goed heb begrepen.
Jan Koehoorn op 31/08/2022 15:02:36
Als je een breedte dynamisch aanpast, zou ik als classname nooit "width200" gebruiken. Want iets later is hij misschien 500px breed en dat is verwarrend.
Dat is uiteraard waar, maar het kan zijn dat er bijvoorbeeld van een bepaald theme of een bepaalde extensie gebruikt wordt gemaakt die die classnaam hanteert, waardoor je daar aan gebonden bent.
De naam width200 was gewoon 1: als voorbeeld en 2: als fallback indien javascript zou falen of uitgeschakeld is.
De optie van jquery lukt wel maar ik hou veel meer van Vanilla JavaScript. Eventueel met een aardbeiensausje :) Ik vind jq zo moeilijk om te debuggen. maar dat is mijn probleem.
De oplossing van ivo p komt het dichts bij wat ik zocht. Echter als ik alle csssheets moet doorlopen om de juiste te vinden, dan alle rules doorlopen om weer de juiste te vinden opnieuw de style doorzoeken.
Dan denk ik dat de oude oplossing sneller en beter blijft.
Toch allen bedankt om te helpen.
ter info oude code
let players = document.querySelectorAll("span.spelerwit, span.spelerzwart");
let max=0;
for (i=0;i<players.length;i++) {
if (max<players[i].scrollWidth) {
max = players[i].scrollWidth;
}
}
for (i=0;i<players.length;i++) {
players[i].style.width = max + "px";
}
Wat je nu doet (met JavaScript de breedste opzoeken en die vervolgens op alle spans toepassen) is ongelofelijk makkelijk met CSS Flexbox/Grid te bereiken. Het loont echt de moeite om dat te leren. Een voorbeeldje:
Ik heb het nooit werkende gekregen via flex
Structuur is 1 speeldag (370px) met onderliggend
* titel
* datum
* De partijen
Wit speler (130px)
uitslag (40px)
Zwart speler (130px)
Officiele ronde (40px)
* Vrije spelers
Deze groep zoveel mogelijk op 1 rij dan naar volgende rij.
De hoogte en breedte van elke groep moet ook hetzelfde zijn.
praktijk: https://www.janr.be/schaak/sc_post-gent/?page=volgenderonden&all=1
Ik weet het ik wil veel maar momenteel ben ik blij met mijn resultaat maar probeer het toch te verbeteren. Als ik de breedte exact kan bepalen kunnen er soms meer op en spaar ik ook papier bij afdruk (verplicht!).