Cum se calculează valoarea nCr
Combinația este un concept matematic. Se referă la aranjarea mai multor obiecte în care ordinea lor este irelevantă. O formulă de bază descrie numărul de combinații valide.
Foile de stil în cascadă (CSS) vă permit să transformați aspectul paginilor dvs. web. De la fonturi și culori până la spațiere și aspect general, toate tipurile de instrumente de design sunt la îndemână. Deși CSS este un limbaj complicat în întregime, există doar două concepte de bază pe care trebuie să le înțelegi pentru a începe.
Totul începe cu identificarea exactă a părții unei pagini pe care doriți să o stilați.
Un fișier CSS conține o serie de reguli care descriu modul în care ar trebui formatat un fișier HTML. Fiecare regulă constă din două părți: ce să stilizezi și cum să o stilizezi. Prima parte este controlată folosind o serie de termeni cunoscuți ca „selectori”.
Exemplele din acest articol includ declarații de stil, dar acestea nu sunt în centrul atenției: selectorii înșiși sunt.
Din punct de vedere istoric, au existat trei niveluri de selectare CSS (sau versiuni) cu diferite grade de suport pentru browser. În 2020, conform Can I Use , toate acestea sunt disponibile pentru peste 99% dintre utilizatorii din întreaga lume.
Nivelul 1 a introdus cele patru tipuri fundamentale de selectoare care acoperă un număr mare de cazuri, chiar și astăzi.
Model | Chibrituri |
---|---|
E |
toate elementele E |
.c |
toate elementele cu class="c" |
#myid |
elementul cu id="myid" |
E F |
un element F în interiorul unui element E |
Pseudo-clase | |
E:link |
un hyperlink către o pagină care nu a fost vizitată anterior |
E:visited |
un hyperlink către o pagină care a fost deja vizitată |
E:active |
un hyperlink care este selectat în prezent |
Pseudo-elemente | |
E::first-line |
prima linie formatată a unui element E |
E::first-letter |
prima literă formatată a unui element E |
Cel mai simplu selector este „selectorul de tip”. Vizează toate cazurile unui element, cum ar fi un paragraf sau un text aldin:
p { margin-bottom: 0; } b { font-family: sans-serif; }
Atributul de clasă permite adăugarea unei semantici suplimentare la un element HTML, cum ar fi un anumit tip de paragraf. Astfel de elemente pot fi selectate în CSS după cum urmează:
.intro { font-weight: bold; }
Acest selector s-ar potrivi cu:
…
Dar rețineți că s-ar potrivi și cu:
…
Dacă doriți să se aplice doar paragrafelor introductive, puteți combina selectorul de tip și selectorul de clasă:
p.intro { font-weight: bold; }
Atributul ID HTML ar trebui să fie unic într-un document, de exemplu dacă aveți:
…
Acesta ar trebui să fie singurul element cu un id de „conținut”. Un selector de ID vă permite să vizați acel element specific dintr-un document:
#contents { color: #333; }
Strict, un „combinator”, deoarece acest selector se referă la spațiul dintre celelalte două. HTML este ierarhic, așa cum este explicat în prezentarea noastră de ansamblu asupra DOM . Un selector descendent permite ca un element să fie identificat prin contextul său în interiorul altui element:
table b { font-weight: normal; }
Pseudo-selectorii vizează clase sau elemente care nu există în mod explicit, dar care sunt oricum disponibile. Gândiți-vă la ele ca la bonusuri speciale de conținut:
p::first-line { text-transform: uppercase; }
Folosiți o virgulă pentru a combina selectoare într-o listă dacă doriți să aplicați același set de reguli fiecăruia. In loc de:
th { padding: 1em; } td { padding: 1em; }
Poti sa scrii:
th, td { padding: 1em; }
O foaie de stil este o serie de reguli care utilizează un selector pentru a potrivi un element, dar ce se întâmplă atunci când mai multe reguli se potrivesc cu un anumit element? Comportamentul rezultat este guvernat de „specificitate”, care definește ce regulă este utilizată într-un caz cum ar fi:
p.intro { color: black; } p { color: gray; }
În astfel de cazuri, regula cu prioritate este definită de specificul ei, după cum urmează:
La calcularea specificității, fiecare nivel este luat în considerare doar dacă doi selectori au același scor la nivelul superior, deci „#conținut” este mai specific decât „articol.știri p.autor.special” deoarece primul „câștigă” pe selectoarele de ID.
Următoarea revizuire a selectoarelor CSS a introdus selectoare de atribute, a extins pseudo-clase și pseudo-elemente și a adăugat două combinatoare noi.
Model | Chibrituri |
---|---|
* |
orice element |
E > F |
un element F al unui element E |
E + F |
un element F imediat precedat de un element E |
Selectori de atribute | |
E[foo] |
un element E cu un atribut „foo”. |
E[foo="bar"] |
un element E al cărui atribut „foo” este exact „bar” |
E[foo~="bar"] |
un element E al cărui atribut „foo” este o listă de valori separate prin spații albe, dintre care una este „bar” |
E[foo|="en"] |
un element E al cărui atribut „foo” are o listă de valori separate prin cratime, care încep cu „en” |
Pseudo-clase | |
E:first-child |
un element E, primul copil al părintelui său |
E:lang(fr) |
un element de tip E în limbajul „fr” |
Pseudo-elemente | |
E::before |
conținut generat înainte de conținutul unui element E |
E::after |
conținut generat după conținutul unui element E |
„*” se potrivește cu orice element. Nu este adesea atât de util, dar dacă doriți să resetați orice marjă implicită, de exemplu, puteți face acest lucru:
* { margin: 0; }
Selectorii de atribute permit stilurilor să fie vizate foarte specific, filtrate după atributul unui element:
a[title] { text-decoration: underline dotted; }
Similar cu combinatorul de descendenți, dar acesta se potrivește doar copiilor imediati, nu descendenților mai jos în copac. De exemplu, „ul > li” se va potrivi doar cu textul „Secțiunea 1” aici, și nu cu „Secțiunea 1.1”:
Section 1
Section 1.1
Section 1.2
h1 + p { font-weight: bold; }
Adesea util pentru controlul marjelor sau a unui paragraf introductiv fără o anumită clasă, acest selector se potrivește cu un element numai dacă urmează imediat altul. În exemplu, doar primul paragraf de aici va fi potrivit, nu și al doilea:
Contents
some extra text
Introductory paragraph
Following paragraph
Rețineți că acest selector ia în considerare doar elementele, nu textul, atunci când decide care este următorul frate.
Unele proprietăți CSS își moștenesc valoarea de la un element strămoș. În practică, aceasta înseamnă, de exemplu, că setarea fontului elementului „corp” înseamnă că fiecare paragraf, tabel etc. utilizează, de asemenea, același font.
Desigur, la asta te-ai aștepta, dar ia în considerare o proprietate care nu moștenește: „marja”, de exemplu. Nu ați dori ca fiecare paragraf sau fragment de text aldine să aibă aceeași marjă ca întregul document.
Înrudit: Exemple simple de coduri CSS pe care le puteți învăța în 10 minute
O regulă generală bună este să vizați elementele la fel de general pe cât are sens - nu vizați fiecare element individual atunci când un simplu selector „corp” va face.
Multe alte pseudo-clase au fost adăugate la acest nivel, alături de niște selectori de atribute și un nou combinator.
Model | Chibrituri |
---|---|
E ~ F |
un element F precedat de un element E |
Selectori de atribute | |
E[foo^="bar"] |
un element E al cărui atribut „foo” începe cu șirul „bar” |
E[foo$="bar"] |
un element E al cărui atribut „foo” se termină cu șirul „bar” |
E[foo*="bar"] |
un element E al cărui atribut „foo” conține subșirul „bar” |
Pseudo-clase | |
E:root |
un element E, rădăcină a documentului |
E:nth-child(n) |
un element E, al n-lea copil al părintelui său |
E:nth-last-child(n) |
un element E, al n-lea copil al părintelui său, numărând de la ultimul |
E:nth-of-type(n) |
un element E, al n-a frate al tipului său |
E:nth-last-of-type(n) |
un element E, al n-a frate de tipul său, numărând de la ultimul |
E:last-child |
un element E, ultimul copil al părintelui său |
E:first-of-type |
un element E, primul frate de acest tip |
E:last-of-type |
un element E, ultimul frate de acest tip |
E:only-child |
un element E, singurul copil al părintelui său |
E:only-of-type |
un element E, numai frate de acest tip |
E:empty |
un element E care nu are copii (inclusiv noduri de text) |
E:target |
un element E fiind ținta URI-ului de referință |
E:enabled |
un element de interfață cu utilizatorul E care este activat |
E:disabled |
un element de interfață cu utilizatorul E care este dezactivat |
E:checked |
un element de interfață cu utilizatorul E care este verificat |
E:not(s) |
un element E care nu se potrivește cu selectorul simplu s |
Puteți selecta elemente cu un atribut care începe cu o valoare dată: a[href^="https:"]
, se termină cu o valoare dată: img[src$=".gif"]
, sau conține o valoare: a[*="value"]
.
Pseudoclasele suplimentare includ „:last-child”, „:empty” (pentru a se potrivi cu un element fără conținut) și „:checked” care se potrivește cu un element ca o casetă de selectare, dar numai când este bifată.
Similar cu Combinatorul de frați adiacent de la nivelul 2, acesta se potrivește cu orice frate care vine după altul, nu doar următorul:
h1 ~ p { font-size: 110%; }
Acum știi cam tot ce trebuie să știi despre cum să selectezi o parte dintr-o pagină web folosind CSS. Acum sunteți gata să vă stilați paginile cu marea varietate de proprietăți CSS care acoperă totul, de la culori la aspect.
Credit imagine: Pankaj Patel/ Unsplash
Combinația este un concept matematic. Se referă la aranjarea mai multor obiecte în care ordinea lor este irelevantă. O formulă de bază descrie numărul de combinații valide.
Solidity este limbajul de programare folosit de contractele inteligente pe blockchain-ul Ethereum. Este un limbaj de programare tip static, orientat pe obiecte.
SQL vs. NoSQL: Care este cea mai bună bază de date pentru următorul tău proiect?
Mulți programatori iubesc să rezolve probleme matematice dificile folosind cod. Ajută la ascuțirea minții și la îmbunătățirea abilităților de rezolvare a problemelor. În acest articol, veți învăța cum să găsiți cele mai mici și mai mari pătrate și cuburi perfecte cu n cifre folosind Python, C++ și JavaScript. Fiecare exemplu conține, de asemenea, eșantion de ieșire pentru mai multe valori diferite.
În timp ce puteți utiliza un calculator grafic pe computer, interpretul limbajului de programare Python se poate dubla ca un calculator de birou. Este o glumă atât de populară în comunitatea Python, încât este menționată în tutorialul oficial. Iată cum puteți utiliza Python ca calculator.
Încorporarea serviciilor terță parte în postările dvs. WordPress este o modalitate interesantă de a captiva interesul vizitatorului. Conținutul încorporat oferă, de asemenea, indicii vizuale care facilitează scanarea. WordPress a simplificat adăugarea acestui tip de conținut.
Dacă sunteți un cercetător de date aspirant care lucrează cu Python sau R, trebuie să știți cum să utilizați Jupyter Notebook. Este un IDE open-source și bazat pe server pentru manipularea datelor, partajarea codului live, precum și gestionarea fluxului de lucru pentru știința datelor.
Tehnologia este, fără îndoială, industria viitorului. Dacă ești unul dintre milioanele de tineri adulți pe cale să se arunce în prima etapă a carierei tale, s-ar putea să te întrebi ce să faci dacă nu-ți place codificarea.
Învățarea unui nou limbaj de programare, cum ar fi Python, devine fără efort dacă aveți o foaie de parcurs cuprinzătoare care detaliază conceptele pe care să le învățați ca începător și cum să progresați mai departe pentru a atinge următoarea etapă. Chiar și programatorii intermediari ar trebui să își perfecționeze frecvent elementele de bază pentru a construi o bază solidă pentru ei înșiși.
ASP.NET este cadrul multiplatform gratuit al Microsoft pentru crearea de aplicații și servicii web. Platforma ASP.NET este o extensie a .NET, o platformă de dezvoltator de instrumente, limbaje de programare și biblioteci utilizate pentru a construi diferite aplicații.
Containerele sunt extrem de benefice pentru dezvoltarea, implementarea și gestionarea software-ului într-un mediu virtual. Docker este util în procesul de containerizare, dar nu este singura platformă din jur. Dacă sunteți în căutarea unor alternative la Docker, nu căutați mai departe. Această listă prezintă câteva alternative Docker eficiente și bogate în funcții de utilizat în următorul proiect.
Unele dintre cele mai discutate aplicații și experiențe mobile din zilele noastre utilizează tehnologia de realitate augmentată. În timp ce unele dintre aceste experiențe pot funcționa practic pe orice dispozitiv mobil, altele funcționează doar pe modele mai noi și mai scumpe. Dezvoltarea și utilizarea acestor experiențe mai robuste necesită ARCore și ARKit.
Ramurile sunt esențiale pentru conceptul de control al versiunilor în programare și Git în special. Acest articol de pornire vă spune ce este o ramură și cum să creați una folosind o serie de instrumente diferite.
Declarația if este forța motrice a programării logice. Ca rezultat, o mai bună înțelegere a Python-ului este un plus semnificativ la abilitățile dumneavoastră de programare Python.
Insignele GitHub pot spori lizibilitatea unui depozit, oferind utilizatorilor o modalitate rapidă de a captura valorile depozitului. Insignele pot fi încorporate în README.md pentru a clarifica importanța și necesitatea proiectului pentru alți dezvoltatori. Drept urmare, cititorii își fac o idee foarte rapidă despre depozit, verificând insignele atașate.
Popularul motor de stocare Redis este un instrument excelent și obligatoriu în orice arsenal de dezvoltatori de software. Motorul de stocare în memorie permite stocarea și recuperarea datelor extraordinar de rapide, până la 32 de milioane de interogări pe secundă, făcându-l o completare principală pentru orice motor major de baze de date.
O parte din magia dezvoltării software are loc atunci când liniile de cod alchimizează în mai mult decât suma părților lor. Veți descoperi că aveți nevoie de o anumită vizualizare creativă atunci când încercați să construiți abstract în acest fel. Acest lucru poate fi valabil pentru procesarea de text sau design web, la fel ca și pentru programare.
Ca utilizator de Windows, probabil că ați întâlnit cel puțin o dată cuvintele .NET Framework. Este un cadru software dezvoltat de Microsoft care vă permite să construiți și să rulați programe C#, C++, F# și Visual Basic. Cea mai recentă versiune .NET este 4.8, dar este posibil ca computerul să aibă nevoie de o versiune mai veche de .NET (cum ar fi .NET 3.5) pentru a rula unele aplicații.
Te confrunți adesea cu dilema clasică în timp ce construiești un site web pentru tine sau afacerea ta. WordPress vs. Wix — pe care să-l alegi și care ar fi cea mai bună alegere pentru tine?
În timp ce Linux ar putea să nu fie sistemul de operare preferat pentru utilizatorii ocazionali, este alegerea preferată pentru majoritatea dezvoltatorilor și programatorilor. Linux este un sistem de operare mai practic care a fost conceput în mod explicit ținând cont de programare și dezvoltatori.
Combinația este un concept matematic. Se referă la aranjarea mai multor obiecte în care ordinea lor este irelevantă. O formulă de bază descrie numărul de combinații valide.
Solidity este limbajul de programare folosit de contractele inteligente pe blockchain-ul Ethereum. Este un limbaj de programare tip static, orientat pe obiecte.
SQL vs. NoSQL: Care este cea mai bună bază de date pentru următorul tău proiect?
Mulți programatori iubesc să rezolve probleme matematice dificile folosind cod. Ajută la ascuțirea minții și la îmbunătățirea abilităților de rezolvare a problemelor. În acest articol, veți învăța cum să găsiți cele mai mici și mai mari pătrate și cuburi perfecte cu n cifre folosind Python, C++ și JavaScript. Fiecare exemplu conține, de asemenea, eșantion de ieșire pentru mai multe valori diferite.
În timp ce puteți utiliza un calculator grafic pe computer, interpretul limbajului de programare Python se poate dubla ca un calculator de birou. Este o glumă atât de populară în comunitatea Python, încât este menționată în tutorialul oficial. Iată cum puteți utiliza Python ca calculator.
Încorporarea serviciilor terță parte în postările dvs. WordPress este o modalitate interesantă de a captiva interesul vizitatorului. Conținutul încorporat oferă, de asemenea, indicii vizuale care facilitează scanarea. WordPress a simplificat adăugarea acestui tip de conținut.
Dacă sunteți un cercetător de date aspirant care lucrează cu Python sau R, trebuie să știți cum să utilizați Jupyter Notebook. Este un IDE open-source și bazat pe server pentru manipularea datelor, partajarea codului live, precum și gestionarea fluxului de lucru pentru știința datelor.
Tehnologia este, fără îndoială, industria viitorului. Dacă ești unul dintre milioanele de tineri adulți pe cale să se arunce în prima etapă a carierei tale, s-ar putea să te întrebi ce să faci dacă nu-ți place codificarea.
Învățarea unui nou limbaj de programare, cum ar fi Python, devine fără efort dacă aveți o foaie de parcurs cuprinzătoare care detaliază conceptele pe care să le învățați ca începător și cum să progresați mai departe pentru a atinge următoarea etapă. Chiar și programatorii intermediari ar trebui să își perfecționeze frecvent elementele de bază pentru a construi o bază solidă pentru ei înșiși.
ASP.NET este cadrul multiplatform gratuit al Microsoft pentru crearea de aplicații și servicii web. Platforma ASP.NET este o extensie a .NET, o platformă de dezvoltator de instrumente, limbaje de programare și biblioteci utilizate pentru a construi diferite aplicații.