Darbs ar HTML5 veidlapu un multivides elementiem

Man ir php dokuments, un es izmantoju iekļaušanu, lai iekļautu savu nolaižamo izvēlni. Navigācija ir ārējs html ar ārējiem js un css elementiem.

Kods ir:

<?php include ('navigation.html');?>
?> var13 ->

Diemžēl mana nolaižamā izvēlne darbojas lieliski html lapā, taču, tiklīdz tas tika ievadīts manā galvenajā lapā, neviens no hoveriem nedarbojas.

Savā navigācijas vietnē.html esmu iekļāvis:

<?php <script type='text/javascript' src='js/ecmNavigation.js'></script> <link href='css/ecmNavigation.css' rel='stylesheet' type='text/css' /> <link href='css/ECM_HelpFile.css' rel='stylesheet' type='text/css' /> 

savā template.php es esmu iekļāvis:

<link href='css/ECM_HelpFile.css' rel='stylesheet' type='text/css' /> <link href='css/ecmNavigation.css' rel='stylesheet' type='text/css' /> 

Kādi ieteikumi? Man navigācija jāsaglabā globālā dokumentā, taču es nevarēju izmantot iframe vai obkect, lai iegultu, jo visa izvēlne netiks rādīta, jo tā ir ierobežota ar iframe un objekta lielumu. (ēdienkarte ir milzīga)

  • Ja vēlaties vienkārši iekļaut faila saturu, neapstrādājot to kā PHP, vienkārši izmantojiet readfile(). include() un require() tiek izmantoti tikai tad, ja failā ir PHP.

Tas ir vairāk piemērots kaudzes pārpildei, taču neatkarīgi no tā ...

Kā teica Bpetersons, tas izklausās kā relatīva ceļa problēma ar CSS / JS. To var viegli novērst, sākot visus vietrāžus URL ar slīpsvītru un ievietojot ceļu no vietnes saknes. Piemēram, ja fails atrodas:

yoursite.com/css/ECM_HelpFile.css 

Jūs varat to iekļaut:

<link href='/css/ecmNavigation.css' rel='stylesheet' type='text/css' /> 

Otrkārt, izskatās, ka CSS esat iekļāvis divas reizes, tāpēc vēlaties noņemt šīs divas rindas no template.php faila.

  • +1 labs zvans, kaza .... duh, salīdzinājumā ar sakni ... tas ir tas, ko es saņemu, uzturoties līdz pulksten 2:30, atkļūdojot JQuery ....
  • "CSS iekļaušana divreiz" - CSS iekļaušana faktiski nebūtu derīga HTML (link elementi) "navigation.html" iekšpusē, kas atrodas body vecāku dokumenta elements.
  • @ w3d Nē, tas tā nav, jums var būt <link> elementi jebkur.
  • @DisgruntledGoat HTML5 versijā jūs varat link elementi body bet ir ierobežojumi - itemprop atribūts ir nepieciešams, bet rel atribūts ir jāizlaiž. Ar RDFa 1.1 pagarinājums property atribūts ļauj jums link elementi body - bet vai tas nav a atšķirīgs dzīvnieks? Es neesmu pārliecināts, ka tas ir stingri derīgs link elementi, kas atsaucas uz ārējām stila lapām (ti. rel='stylesheet') iekš body? (Lai gan pārlūkprogrammas to atbalsta.)
  • @ w3d hmm dīvaini, spec saka "Ja tiek izmantots rel atribūts, elements ir ierobežots līdz galvenajam elementam" bet tieši pirms tam teikts "Saites elementam jābūt rel atribūtam" tāpēc tas ir sava veida pretrunīgs. Jebkurā gadījumā es nedomāju, ka tas ir mazliet svarīgi, jo pārlūkprogrammas ļauj saites elementus izmantot jebkur.

Ja es būtu derību dalībnieks, es teiktu, ka saites, kuras jūs norādījāt navigācijas html iekšpusē, mēģina iet salīdzinājumā ar tās lapas URL, no kuras to iekļaujat. Lai pārbaudītu, nomainiet saites uz absolūto (http: // www ...) un pārbaudiet, vai tās darbojas ... ja tās darbojas, tad jūs zināt, kāda ir problēma.

Kad būšu neizpratnē par iekļaušanu, es ielādēšu lapu un skatīšu avotu. Tur jūs varat noklikšķināt uz saitēm un redzēt, vai tie atgriež iekļauto failu. Jūs būtu pārsteigts, cik reizes viņi neizdodas bez kļūdām. Man ir aizdomas, ka otrais iekļaušanas komplekts, kuru jūs izdarījāt .php failā, piešķir tam nepieciešamos css, bet visa nepieciešamā javascript fails ir tas, kas noved pie visa. Noklikšķinot uz saitēm avotā, tas jums noteikti tiks paziņots.

Ja iepriekš minētie testi darbojas, jums ir izvēle .... atstājiet to absolūtu, tādā gadījumā jūs zināt, no kurienes tas notiks katru reizi, neatkarīgi no tā, no kurienes jūs iekļaujat. Vai arī jūs varat iekļaut JS no galvenā faila, kurā ir iekļauts, kas noteikti varētu būt piemērots atkarībā no jūsu struktūras un kodēšanas stila. Visbeidzot, navigācijas failā jūs varētu pāriet uz .php un dinamiski iestatīt URL pirms tā iekļaušanas.

Man bija līdzīga problēma, lietojot dreamweaver ar šķidruma režģa izkārtojumu, un man problēma bija dreamweaver pievienotais fails boilplate.css.

noņemot 245. līniju:

.hidden { display: none !important; visibility: hidden; } 

izlaboju to man

  • Šī patiesībā nav tā pati problēma. OP problēmu izraisīja relatīvo ceļu izmantošana.
  • Tad līdzīgi ..? Es domāju, ka tas būtu noderīgi citiem, kuriem ir līdzīgas problēmas, kuri šeit nokļūst, izmantojot google, jo varbūt arī mans risinājums viņiem darbojas.

Es uzskatu, ka jums būs jāpārdēvē navigācijas fails uz navigation.php un pēc tam jāizmanto

<?php include('navigation.php');?>

lai iegūtu to, ko meklējat. Lielākajā daļā skriptu valodu netiks iekļauti neapstrādāti .html faili. Pārliecinieties arī, vai starp “include” un “()” nav atstarpes, pretējā gadījumā tas netiks izpildīts. Vienkārši pārdēvējot bez izmaiņām tajā esošajā, tas jānovērš.

Vēl viena lieta, kas jums jāpievērš uzmanība, ir .js faila iekļaušana

<script type='text/javascript' src='js/ecmNavigation.js'></script> 

pēc css failiem, nevis iepriekš. Tam vajadzētu uzlabot jūsu lietotāju lejupielādes ātrumu.

  • 2 Patiesībā tas darbosies, lietojot include() neatkarīgi no faila paplašinājuma. Failu paplašināšanas direktīvu tīmekļa serveris izmanto tikai, lai noteiktu, kurus failus parsēt ar PHP. Pašam PHP ir vienalga, kāds ir faila paplašinājums, tāpat kā tas include(), require()utt. Tomēr ir slikta ideja ievietot PHP kodu .html failus, jo lietotājs varēja ielādēt failu tieši un redzēt jūsu kodu.

strādāja par jums: Charles Robertson | Vēlies ar mums sazināties?