Web Dev Q & A # 2 - Sesiuni PHP, Doctypes HTML5 și Styling Formular

Am revenit cu a doua intrare în seria Nettuts + Q & A. Astăzi, discutăm despre diferența dintre LESS și Sass, cum să treci valorile din partea serverului în JavaScript, cum să lucrezi cu PHP și cookie-uri și de doctype HTML5. Începem!


1. Mai puțin și Sass.

Hei Nettuts +. Sunt derutat. Care este diferența dintre LESS și Sass? Sunt aceleași?

Există avantaje pentru utilizarea ambelor; cu toate acestea, adevărul este că ambele vor face treaba minunat. Ea devine cea mai mare parte un caz de preferință, atunci când vine vorba de sintaxa și altele. În trecut, mulți preferați mai puțin, deoarece aveau o sintaxă mai prietenoasă cu CSS, deși, din Sass 3, au o nouă sintaxă, cunoscută sub numele de SCSS (Sassy CSS), care este pur și simplu un subset al sintaxei CSS3.

Envato devs folosește Sass. Un alt dezvoltator popular preferă mai puțin. Aș echivala compararea cadrului 960 CSS cu Blueprint. Ambele sunt minunate; așa că fă-ți mintea. Nu există răspunsuri greșite!

Doriți să aflați mai multe despre LESS pe Nettuts+?


2. Server-side pe partea clientului

Am încercat să-mi dau seama cum să trec valoarea JavaScript a unei variabile PHP. Cum pot face acest lucru? Mulțumiri!

Cea mai rapidă și mai ușoară soluție este de a echivala variabila dorită din cadrul JavaScript. De exemplu, ați putea interoga baza de date MySQL cu PHP și apoi să transmiteți valoarea returnată JavaScript-ului dvs., făcând ceva în paralel cu:

      tt     

3. Foile personalizate cu PHP

Cum pot să aleg o schemă de stil pentru site-ul meu dinamic dinamic?

Deci, doriți, de exemplu, să alegeți red.css, sau blue.css, și care ar încărca o schemă de culori diferită pentru site-ul dvs. web. Asta vrei să spui? Există cu siguranță mai multe modalități de a îndeplini această sarcină, iar alegerea corectă va depinde dacă folosiți un cadru, un CMS, MVC etc. Să păstrăm lucrurile simple și ca oasele goale. Putem folosi PHP sesiuni. În primul rând, trebuie să adăugăm o Selectați , pentru ca utilizatorul să aleagă foaia de stil dorită.

     tt   

Alegeți foaia de stil

Apoi, cu PHP, vom asculta dacă pagina a postat înapoi - sau dacă A depune a fost făcută clic pe butonul. Cu o pagină simplă, cum ar fi aceasta, putem folosi utilul $ _SERVER [ 'REQUEST_METHOD'].

"Metoda de solicitare" determină ce metodă de solicitare a fost utilizată pentru a accesa pagina: "GET", "HEAD", "POST", "PUT" "

În partea de sus a paginii, adăugați următoarele:

  

Din moment ce putem confirma acum când pagina a postat înapoi, putem crea un sesiune, și să stocați valoarea a ceea ce a ales utilizatorul din caseta de selectare.

 

Aici, noi creăm mai întâi o nouă sesiune PHP, cu session_start (). Apoi, vom crea o nouă cheie, cu $ _SESSION, numit "color_scheme". Simțiți-vă liber să numiți așa cum doriți. În mod implicit, am setat acest lucru la "implicit" (a se vedea instrucțiunea "altceva"). Aceasta înseamnă că, dacă utilizatorul nu a selectat o foaie de stil, vom folosi opțiunea implicită. Cu toate acestea, dacă au făcut o alegere, trebuie să determinăm ce opțiune din Selectați elementele pe care le-au ales și să le stocheze într-o cheie de sesiune.

Revenind la marjă, veți găsi că am aplicat a Nume de "culori" la Selectați element.

 

Când pagina revine înapoi, valoarea selectată din asta Selectați elementul va fi disponibil pentru noi, via $ _POST [ 'culori']. De exemplu, dacă aleg opțiunea "verde", $ _POST [ 'culori'] va fi apoi egal cu "verde".

Fără sesiuni și cookie-uri, nu ar exista nicio modalitate de a "aminti" această valoare selectată de utilizator. De aceea sunt esențiale în acest caz. Acum că $ _SESSION [ 'color_scheme'] stochează valoarea dorită, trebuie doar să încărcăm foaia de stil corespunzătoare.

   tt  

4. Elemente de formă rotunjite

Bună Nettuts +! Cum pot crea intrări de formă rotunjită cu CSS pentru toate browserele?

Deci, doriți intrări stilizate, rotunjite în toate browserele, inclusiv în Internet Explorer? Okie dokie. Luați în considerare următoarea marjă simplă:

 

Folosind un simplu CSS3, putem crea colțuri rotunjite pentru acele intrări. Deoarece unele browsere au avut un start pe spec., Trebuie să folosim -Moz și -WebKit prefixele furnizorilor, precum și versiunea oficială a proprietății "border-radius".

 
  • -Moz: Browserele Mozilla (Firefox)
  • -WebKit: Browsere Webkit (Safari, Chrome)

Prin specificarea atip atributul lui a depune, ultimul fragment va viza numai butoanele de trimitere și va schimba în mod corespunzător.

Asta e Blasted IE

Din păcate, după cum probabil ați ghicit, Internet Explorer este un jaf. În timp ce IE9 viitoare are suport pentru border-radius (fără prefix), versiunile mai vechi sunt încă în pierdere. În acest moment, aveți două opțiuni:

  1. Ignora. Lumea nu se va termina dacă cititorii văd unghiuri de 90 de grade.
  2. Image Fallback. Puteți viza în mod specific Internet Explorer și puteți aplica o imagine de fundal rotunjită.

Modernizr

Presupun că solicitantul acestei întrebări necesită consistență; așa că vom merge cu a doua opțiune. Să presupunem că veți lucra mult cu CSS3 și HTML5 în proiectul dvs. În acest caz, mai degrabă decât să utilizați o foaie de stil numai pentru IE, de ce să nu vă distrați și să folosiți biblioteca Modernizr?

Mai întâi, descărcați Modernizr și trimiteți fișierul modernizr.js în cadrul proiectului dvs..

   tt  

Apoi, aplicați o clasă de no-js la html element pe pagina dvs..

 

Când vizualizați proiectul în browser, Modernizr va aplica un șir lung de clase la html element, care specifică exact ceea ce este capabil de browserul dvs. Rețineți că, evident, această listă de clase va varia, în funcție de browser.

Acesta este un ajutor imens! Acum putem folosi efectul "cascadă" pentru a viza numai elementele de formă care sunt copii ai html element cu o clasă de "no-borderradius", și stil în consecință.

Dacă browserul nu acceptă o anumită caracteristică, cuvântul "nu" va fi prefixat regulii.

 / * Sunt direcționate numai browserele care nu acceptă raza de frontieră * / .no-borderradius input background: url (cale / spre / rotunjit / fundal / imagine) no-repeat; 

Și apoi ne relaxăm și avem tort.


5. Doctypes

Am observat că utilizați întotdeauna doctype HTML5. Nu credeți că este periculos, când toate browserele nu acceptă încă HTML5?

Nu, nu e deloc periculos. Pentru cei necunoscuți cu doctype-ul minunat de HTML5, este:

 

Serios ... asta e. Cam despre asta e. Nu mai există mai multe rânduri de atribute multiple; doar un DOCTYPE simplu - așa cum ar trebui să fie. În browsere mai vechi, această doctype îi va declanșa standarde-mode... Și dacă sunteți încă îngrijorat, rețineți că și Google o folosește! Nevoie de mai mult? John Resig vorbea despre asta acum 2,5 ani!

"Ce este frumos în legătură cu acest nou DOCTYPE, în special, este că toate browserele actuale (IE, FF, Opera, Safari) se vor uita la el și vor schimba conținutul în modul standard - chiar dacă nu implementează HTML5. începeți să scrieți paginile dvs. web utilizând HTML5 astăzi și să le durați foarte mult, foarte mult timp. "
-John Resig


Citiți întrebările anterioare

  • # 1: Callbacks, LESS și Floats

Întrebați Nettuts + ...

Dacă aveți o întrebare de dezvoltare web "nu prea complicată" pentru dvs., puteți:

  1. Trimiteți un e-mail la adresa [email protected] și scrieți "Web Dev Q & A" ca subiect al e-mailului.
  2. Trimiteți-ne @ nettuts și hash "#askNettuts".
  3. Lăsați un comentariu sub orice postare "Web Dev Q & A" cu noua dvs. întrebare.

Vă mulțumim pentru citire și vizionare!

Cod