BEM denkwijze

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

C#.NET/Unity Developer

Functieomschrijving Voor een gewaardeerde werkgever in de omgeving van Breda zijn wij op zoek naar een software ontwikkelaar. Dit bedrijf houdt zich bezig met de ontwikkeling van WMS Software (C#/Unity & SQL). Past dit bij jou? Lees snel verder! Jouw werkzaamheden zullen er als volgt uitzien: Je werkt aan innovatieve softwareoplossingen voor het verbeteren en/of vernieuwen van processen; Samen met 6 applicatieontwikkelaars hebben jullie de verantwoordelijkheid voor de uitbreiding en ontwikkeling van de webapplicaties; Het uitvoeren van updates/aanpassingen aan de huidig draaiende applicaties; Je bent een luisterend oor naar klanten en vertaalt hun wensen door naar bruikbare software. Bedrijfsprofiel Wie

Bekijk vacature »

Junior Software developer

Functie Als junior .NET ontwikkelaar start jij in een compact team met drie ervaren .NET ontwikkelaars. Wij werken op projectbasis en begeleiden zelf het hele traject van A tot Z. Wij bieden jou dan ook een brede functie aan met veel technische uitdaging! Ons traject ziet er als volgt uit: 1) Wij analyseren de behoefte van onze klant 2) Wij werken de behoefte uit en vertalen dit naar technische werkzaamheden en maken een uren/kosten schatting; 3) Wij gaan aan de slag met het ontwikkelen van het product met directe feedback van de klant, zodat datgene gerealiseerd wordt, wat gewenst is;

Bekijk vacature »

Applicatie Ontwikkelaar

Bedrijfsomschrijving DUO verzorgt als uitvoeringsorganisatie, zijnde onderdeel van het Ministerie van Onderwijs, Cultuur en Wetenschap de uitvoering van complexe wet- en regelgeving en heeft een uitgebreid dienstenpakket. DUO financiert en informeert onderwijsdeelnemers en onderwijsinstellingen. Voor verdere informatie zie www.duo.nl Functieomschrijving Wie zoeken we? Jij bent een enthousiaste, flexibele OPS’er die het leuk vindt om het bestaande examenlandschap te vernieuwen. Je bent leergierig en hebt interesse in cloud- en containertechnieken zoals OpenShift, Docker en Helm. Je gaat een uitdaging niet uit de weg en wil je nieuw opgedane kennis graag delen met de collega’s binnen en buiten het team. Doordat de

Bekijk vacature »

Traineeship Full Stack .NET Developer

Dit ga je doen Start op 7 augustus 2023 bij de Experis Academy en ontwikkel jezelf tot een gewilde Full Stack .NET Developer. Maar hoe ziet het traineeship eruit en wat kun je verwachten? Periode 1 De eerste 3 maanden volg je fulltime, vanuit huis, een op maat gemaakte training in teamverband. Je leert belangrijke theorie en krijgt kennis van de benodigde vaardigheden en competenties die nodig zijn om de IT-arbeidsmarkt te betreden. Zowel zelfstandig als in teamverband voer je praktijkopdrachten op het gebied van front- en backend development uit. Wat er per week op het programma staat kun je

Bekijk vacature »

Backend Developer Scrummaster .NET

Samengevat: Deze werkgever is een ambitieus internetbedrijf met een passie voor digitale communicatie. Ben jij geschikt als Backend Developer? Heb je ervaring met .NET platform? Vaste baan: Backend Developer / SCRUM Master Scrum HBO WO €3.800 - €6.000 Deze werkgever is een innovatief bedrijf met enthousiaste mensen die jarenlang ervaring hebben met het ontwikkelen internet- en intranetoplossingen. Wij houden van korte lijnen en open en eerlijke communicatie. Wij zetten graag onze jarenlange ervaring in om perfect werkende oplossingen te ontwikkelen. Wij ondersteunen dienstverlenende organisaties bij het ontwikkelen en realiseren van een effectief, adaptief communicatieplatform. Je ontwikkelt met ons de meest

Bekijk vacature »

Java Developer

Vacature details Vakgebied: Software/IT Opleiding: Senior Werklocatie: Eindhoven Vacature ID: 12946 Introductie We are looking for a Java Developer! Our client is one of the most innovation companies located within the Netherlands. We provide high quality software in a high-tech and challenging market. Functieomschrijving The department is specialized in creating and developing high quality software for manufacturing automation in a high tech environment. We strive to provide our clients with high quality software and deliver state of the art solutions in a variety of ways. Creating software infrastructure using Java SE / EE Create applications to fine tune manufacturing processes

Bekijk vacature »

Medior/Senior Python developer (Django)

Functie Je komt te werken in het IT-team bestaande uit de Lead developer en 4 (medior/senior) developers. Gezamenlijk werken jullie aan de verbetering en uitbreiding van de software. Binnen het development team is er veel vrijheid en zelfstandigheid, zonder dat ze hiermee afdoen aan de kwaliteit. Zo hebben ze elke ochtend een korte stand-up (10:00 uur) en werken ze met pair-programming sessies. Ook is er een hele professionele ontwikkelcyclus waarbij code altijd eerst door een collega wordt getest voordat het naar deployement gaat. Er is een kwaliteitsfocus en dan biedt ruimte om verbeteringen echt door te voeren binnen de gehele

Bekijk vacature »

PHP Developer

As a PHP Developer at Coolblue, you ensure that our webshops work as optimal as possible. How do I become a PHP Developer at Coolblue? As a PHP Developer you work together with other development teams to make our webshop work as optimal as possible and to make our customers happy. Although you are a PHP Developer, you are not averse to a little TypeScript or other technologies that might be used. Would you also like to become a PHP Developer at Coolblue? Read below if the job suits you. You enjoy doing this Writing vanilla PHP code. Working with

Bekijk vacature »

Software Developer

Functie omschrijving Heb jij affiniteit met ICT en een WO diploma in de pocket? Dan ben je hier aan het juiste adres. Voor een opdrachtgever in Amsterdam zijn wij op zoek naar kandidaten die (enige) ervaring hebben met Java, Javascript, C of C++. Je zal door middel van trainingen worden opgeleid tot een volwaardige Software Developer. Er wordt tijdens de training natuurlijk veel aandacht besteedt aan de vaktechnische aspecten, maar er gaat ook veel aandacht uit naar jouw persoonlijke ontwikkeling. Bedrijfsprofiel Bij deze opdrachtgever in de omgeving van Amsterdam zoeken ze meerdere enthousiaste kandidaten die hun carrière willen starten met

Bekijk vacature »

Front-end developer wanted! (Angular, React, Vue.j

Functie Under the guidance of 3 account managers, one of whom will be your point of contact within your expertise, you will start working for various clients. He or she will help you find a suitable and challenging assignment. Naturally, they will take your situation, experience and (technical) ambitions into account. The assignments last one to two years on average. This allows you to really commit to a project and make an impact as a consultant. Besides the assignment, you will regularly meet your colleagues from the IT department to share knowledge or discuss new trends, for example. Master classes

Bekijk vacature »

PHP Developer gezocht!

Functie omschrijving Wij zijn op zoek naar een PHP Developer! Ben jij op zoek naar een nieuwe uitdaging? Lees dan snel verder! Voor een organisatie in de regio Utrecht die zich bezighoud met het verbeteren van de medicatieveiligheid zoeken wij een Software Developer. In deze functie zijn wij op zoek naar een slimme en enthousiaste Developer die interesse heeft in farmacie, logistiek en ICT. Daarnaast beschik je over een goed analytisch vermogen en ben je van nature gestructureerd en resultaatgericht. Je moet in deze functie daadkrachtig, flexibel en communicatief goed zijn. Je verantwoordelijkheden bestaan uit: Object georiënteerd programmeren; Werken in

Bekijk vacature »

Medior Java developer (fullstack)

Wat je gaat doen: Of beter nog, wat wil jij doen? Binnen DPA GEOS zijn we dan ook op zoek naar enthousiaste Java developers om ons development team te versterken. Als Java developer werk je in Agile/Scrum teams bij onze klanten en daarbij kun je eventueel ook andere ontwikkelaars begeleiden in het softwareontwikkelproces. Verder draag je positief bij aan de teamgeest binnen een projectteam en je kijkt verder dan je eigen rol. Je gaat software maken voor verschillende opdrachtgevers in jouw regio. Je bent een professional die het IT-vak serieus neemt en kwaliteit levert. Je leert snel vanwege je diepgaande

Bekijk vacature »

Randstad B.V.- Freelance Senior Fullstack Develope

Startdatum: 01.05.2023 Richttarief: € 75,00 - €85,00 Duur van de opdracht: 1 jaar Uren per week: 40 Werkmodel: Hybride, dinsdag en donderdag aanwezig op kantoor in Diemen en meer wanneer dit nodig is. Functieomschrijving: De ideale kandidaat gaat onderdeel uitmaken van een junior team binnen het foundation domein. Vanuit het foundation domein werkt dit team samen met andere foundation teams en teams uit het online domein (professionals B2B en B2C) voor het bouwen en integreren van HRM functionaliteiten (verlof en benefits) in de persoonlijke portal van Interim Professionals. Er is meer backend werk dan frontend, maar kandidaat moet beiden leuk

Bekijk vacature »

Senior Full Stack developer

Bedrijfsomschrijving tbd Functieomschrijving Full Stack Java Development bij Randstad Groep Nederland (HQ) Er is een vacature in het Corporate Client Solutions (CCS) team. Dit team is met een ander team net begonnen aan het project ‘Grip op Inhuur’. Het doel van dit project is de tevredenheid van onze leveranciers te verhogen en de efficiëntie van onze administratie te verbeteren. Onderdeel daarvan is een ‘Mijn-omgeving’ voor ZZP’ers en leveranciers. Naast dit nieuwe project werkt het team ook aan het onderhoud en verbeteren van een digitaal vacature management systeem waarmee dagelijks vele vacatures worden voorzien. Het team ontwikkelt zo veel mogelijk zelf

Bekijk vacature »

Senior Front-end developer

Functie Als front-end developer ga je aan de slag voor verschillende klanten, waarbij veel rekening wordt gehouden met waar je woont (dit is altijd binnen het uur), en word er gezocht naar een organisatie die past bij jou. Zowel qua persoonlijke ambities als de technische aansluiting. De opdrachten duren gemiddeld 1 à 2 jaar maar dit hangt ook af van je wensen. Je werkt in een teamverband voor een klant en zult nauw samenwerken met zowel eigen collega’s als die bij de klant werkzaam zijn. Ze zijn op zoek naar een technische front-end developer die ruime ervaring heeft in één

Bekijk vacature »

Pagina: « vorige 1 2

Ozzie PHP

Ozzie PHP

10/08/2016 03:02:22
Quote Anchor link
@Wouter J:

Duidelijk verhaal ... wat ook daadwerkelijk opgaat als dingen/elementen continu zouden veranderen. Echter ... volgens mij bouwen we een website naar een vaststaande structuur en weten we dus op voorhand wat waar staat.

Wil ik een speciale lijst toevoegen dan voeg ik een lijst met class "my_special_list" toe. Waarom moet ik dan alle <li>'s die daar inzitten ook weer een aparte class geven, terwijl ik die prima kan benaderen via het root-element <ul> met de class "my_special_list"?

Komen we weer even terug op het voorbeeld met het klaslokaal. Stel we hebben 1 klaslokaal met felle groene verlichting, en 1 klaslokaal met felle rode verlichting.

Ieder kind dat het rode lokaal binnenstapt wordt door de verlichting vanzelf roodgekleurd en is dus een "rood" kind. Ieder kind dat het groene lokaal binnenstapt wordt op diezelfde manier "groen" van kleur. We weten dus dat in het rode lokaal altijd rode kinderen zitten, en in het groene lokaal altijd groene kinderen. WAAROM zouden we dan bij de kinderen in het rode lokaal nog een extra bordje om hun nek hangen om aan te geven dat ze rood zijn? Nergens voor nodig, want omdat ze in het rode lokaal zitten, weten we dat al. Idem voor het groene lokaal.

Hoe achterlijk dit voorbeeld ook is (maar goed dat was het originele voorbeeld ook) geeft het wel exact aan wat ik bedoel te zeggen. Op basis van een overkoepelend element, kun je generieke elementen binnen het overkoepelend element prima stijlen. Het lijkt mij overkill om al die generieke elementen een bordje om hun nek te hangen / een class te geven.
Gewijzigd op 10/08/2016 03:14:38 door Ozzie PHP
 
PHP hulp

PHP hulp

11/03/2025 06:08:16
 
Ward van der Put
Moderator

Ward van der Put

10/08/2016 10:43:21
Quote Anchor link
Ozzie PHP op 10/08/2016 03:02:22:
Wil ik een speciale lijst toevoegen dan voeg ik een lijst met class "my_special_list" toe. Waarom moet ik dan alle <li>'s die daar inzitten ook weer een aparte class geven, terwijl ik die prima kan benaderen via het root-element <ul> met de class "my_special_list"?

Het verschil is dat jouw versie impliciet is met een verborgen opmaak die je alleen kunt terugvinden door in de CSS-code te zoeken. Ik moet bijvoorbeeld binnen de accolades gaan kijken hoe jij een kerstboom optuigt:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
ul.kerstboom {
  ...
}

ul.kerstboom li {
  ...
  ...
  /* Dit moet ik allemaal lezen om te achterhalen wat je doet en laat. */
  ...
  ...
}

Aangezien jij HTML-elementen rechtstreeks opmaakt, loop ik ook nog het risico dat je elders in de CSS-code bijvoorbeeld hebt verzonnen dat lijsten in een footer anders worden opgemaakt:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
footer ul {
  ...
}

BEM maakt keuzen expliciet:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
.kerstboom {
  ...
}

.kerstboom__kerstbal {
  ...
}

.kerstboom__piek {
  ...
}

.kerstboom__kerstbal--goudkleurig {
  ...
}

.kerstboom__kerstbal--zilverkleurig {
  ...
}

Ozzie PHP op 10/08/2016 03:02:22:
Duidelijk verhaal ... wat ook daadwerkelijk opgaat als dingen/elementen continu zouden veranderen. Echter ... volgens mij bouwen we een website naar een vaststaande structuur en weten we dus op voorhand wat waar staat.

Maar BEM is dan ook bedoeld voor templating. Kijk bijvoorbeeld maar eens naar de BEM-bouwstenen in Material Design Lite (MDL) van Google. Als een structuur op voorhand vastligt en later zelden of nooit ingrijpend verandert, is een objectgeoriënteerd, modulair template-systeem niet interessant. Áls ...
 
Ozzie PHP

Ozzie PHP

10/08/2016 12:13:23
Quote Anchor link
>> Maar BEM is dan ook bedoeld voor templating.

Dat is dus een situatie waarin het handig zou kunnen zijn.

>> Het verschil is dat jouw versie impliciet is met een verborgen opmaak die je alleen kunt terugvinden door in de CSS-code te zoeken. Ik moet bijvoorbeeld binnen de accolades gaan kijken hoe jij een kerstboom optuigt

Dat moet je in de BEM variant ook, met hooguit als verschil dat je daar direct naar het naampje kunt gaan van de class. Maar met bijv. Firebug zie je ook direct de opmaak van ieder element, dus voor mij persoonlijk is dit geen zwaarwegend argument. Ik vind het dan weer zonde van resources om generieke elementen pseudo-uniek te maken door ze hun eigen class te geven.

Maar goed, uiteindelijk is het een kwestie van wat je zelf makkelijk vindt. Ieder nadeel heb z'n voordeel ;)
 
Eddy E

Eddy E

10/08/2016 22:19:50
Quote Anchor link
Ozzie PHP op 08/08/2016 21:25:20:
Wat een vreemde manier om generieke elementen te voorzien van een class ... lijkt me overkill.


Helemaal mee eens.
Ik haak dan wel even halverwege in het topic aan, maar om elk element een class te geven, is toch niet nodig?
Je kan er toch (bijna) altijd bij zonder enige class dan ook?
Een class op <body> is geen gek idee en soms op <section> ook niet, maar dat doe je dan meestal via een id=...!

Wat is er mis met dit?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
body#contact nav ul li a:nth-child(1) { font-weight: bold; }


Toch duidelijk dat de eerste link van je menu op de contact-pagina vet wordt?

Toevoeging op 10/08/2016 22:29:58:

Als reactie op Ward z'n code van een kerstboom:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<div class="kerstboom">
    <div>Piek</div>
    <div class="bal zilver">Zilveren bal</div>
    <div class="bal goud">Gouden bal</div>
    <div>Voet</div>
</div>


/* Kerstboom hier */
.kerstboom             {  }

.kerstboom div:first-child     { /* piek /* }
.kerstboom div:last-child     { width: 10%; background-color: brown; }

.kerstboom .bal         { border-radius: 100%; }

.kerstboom .zilver         { background-color: grey; }
.kerstboom .goud         { background-color: yellow; }


Zo houd je sematiek hoog, weet je alsnog alles te vinden en ben je veel flexibeler. Je kan ook een gouden stam hebben... Gewoon class=goud toevoegen...
Gewijzigd op 10/08/2016 22:30:47 door Eddy E
 
Wouter J

Wouter J

10/08/2016 22:31:36
Quote Anchor link
Quote:
Toch duidelijk dat de eerste link van je menu op de contact-pagina vet wordt?

Ironisch bedoelt? Zo ja, negeer de rest van t bericht maar. :)

<nav> is niet alleen je hoofdnav. Ook die serie linkjes in je footer is een nav. Sterker nog, die "< prev | next >" linkjes bij blogposts zijn ook nav. Dus nu wordt elk eerste li'tje in een nav (iedere willekeurige nav) bold.

Ja, je zal nu wel 1 <nav> hebben. Maar over 30 dagen voeg je toch nog een sidebar met een subnavje toe en het gedoe begint. Dan moet die weer font-weight:normal; krijgen, met eventueel andere stijlen die van andere CSS selectors zijn geinherit, etc.

Tevens is de selector veel te specifiek. Niet alleen kun je op deze manier de stijl nogmaals hergebruiken, ook zal deze selector relatief traag zijn. (CSS selectors worden altijd van rechts naar links gelezen).
 
Ozzie PHP

Ozzie PHP

10/08/2016 22:44:29
Quote Anchor link
body#contact nav ul li a:nth-child(1) { font-weight: bold; }

Body met een id is niet nodig, want er staat op iedere pagina maar 1 body.

Dan hou je dus over:

#contact nav ul li a:nth-child(1) { font-weight: bold; }

Die ul en li zijn uit m'n hoofd ook niet nodig, dus blijft over:

#contact nav a:nth-child(1) { font-weight: bold; }

nth-chilc(1) kan first-child worden en dan krijg je:

#contact nav a:first-child { font-weight: bold; }

>> Tevens is de selector veel te specifiek.

Nu dus niet meer ;-)
 
Wouter J

Wouter J

10/08/2016 22:55:40
Quote Anchor link
Quote:
Nu dus niet meer ;-)

Gelukkig weten jij en ik dat "Tevens" betekend dat er voor nog veel meer geschreven staat.

Overigens werk de hele selector niet zoals verwacht (zowel specifieke als de korte, welke idd identiek zijn), maar dat mag eenieder zelf uitvinden :)
 
Ozzie PHP

Ozzie PHP

11/08/2016 00:52:59
Quote Anchor link
>> Overigens werk de hele selector niet zoals verwacht

Haha ... zou zomaar kunnen ;-) Heb 'm ook niet getest.

Anyhow ... gebruik gewoon BEM als je dat fijn vindt. Ik gebruik het niet. Stijl dingen die algemeen zijn ook als zodanig, en wat specifiek noodzakelijk is, ook als zodanig. Dat is mijn werkwijze. Scheelt in ieder geval een hoop classes ;-)
 
Eddy E

Eddy E

11/08/2016 10:03:48
Quote Anchor link
Wouter J op 10/08/2016 22:31:36:
Ironisch bedoelt? Zo ja, negeer de rest van t bericht maar. :)


Beetje wel ja ;)
Desalniettemin is het zo benaderen van elementen, (hetzij een strakke hierachie nodig is) wel mogelijk.

In tegenstelling tot BEM, vond ik vanochtend dit: http://acss.io/
Maar hetzelfde als in mij ogen: veel te veel classes en code voor iets wat veel eenvoudiger met iets geavanceerdere CSS ook gewoon mogelijk is.
 
Ward van der Put
Moderator

Ward van der Put

11/08/2016 10:26:12
Quote Anchor link
Eddy E op 11/08/2016 10:03:48:
In tegenstelling tot BEM, vond ik vanochtend dit: http://acss.io/
Maar hetzelfde als in mij ogen: veel te veel classes en code voor iets wat veel eenvoudiger met iets geavanceerdere CSS ook gewoon mogelijk is.

Er zijn inderdaad meer template-talen die er, net zoals BEM, een eigen dialect van CSS op nahouden. Naast ACSS (Atomic CSS) zijn dat bijvoorbeeld SMACSS (Scalable and Modular Architecture for CSS) en OOCSS (Object Oriented CSS).

Het draait er niet om dat ze iets zouden doen dat in CSS onmogelijk is: ze gebruiken uiteindelijk immers allemaal CSS. Ik denk dat je ze meer moet zien als tussentaal die een logischer (of beter te hanteren) verband legt tussen DOM-elementen enerzijds en CSS-eigenschappen anderzijds.

Vooral het feit dat ze objectgeoriënteerd zijn, maakt ze aantrekkelijk als je ook al objectgeoriënteerd PHP gebruikt. Een BEM-block kun je zien als één klasse. Vergelijkbaar met methoden en properties in een PHP-klasse kan één zo'n CSS-klasse meerdere DOM-elementen en meerdere CSS-eigenschappen omvatten.
Gewijzigd op 11/08/2016 10:28:39 door Ward van der Put
 

Pagina: « vorige 1 2



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.