Создать внешний файл для бокового меню - PullRequest
0 голосов
/ 14 февраля 2020

Как мне создать внешний файл для моего бокового меню?

<a class="active" href="C.html" style="font-size: 1.1em;font-weight: 900;">C Programming</a>
<a href="C++.html" style="font-size: 1.1em;font-weight: 900;">C++</a>
<a href="CSharp.html" style="font-size: 1.1em;font-weight: 900;">C#</a>
<a href="Go.html" style="font-size: 1.1em;font-weight: 900;">Go</a>
<a href="Java.html" style="font-size: 1.1em;font-weight: 900;">Java</a>
<a href="JavaScript.html" style="font-size: 1.1em;font-weight: 900;">JavaScript</a>
<a href="PHP.html" style="font-size: 1.1em;font-weight: 900;">PHP</a>
<a href="Python.html" style="font-size: 1.1em;font-weight: 900;">Python</a>
<a href="Ruby.html" style="font-size: 1.1em;font-weight: 900;">Ruby</a>
<a href="Swift.html" style="font-size: 1.1em;font-weight: 900;">Swift</a>

В настоящее время у меня есть такие ссылки в каждом файле, и код просто становится слишком много. Есть ли способ создать внешний файл для пунктов меню?

Я пробовал это , но проблема в class="active". Я хочу выделить элемент меню, когда мой элемент меню находится в указателе. php Я знаю, как этого добиться, когда мое меню находится в каждом отдельном файле HTML, но как мне это сделать, когда оно находится во внешнем файле PHP?

Индекс. php

<html>
<head>
  <link rel="stylesheet" type="text/css" href="CSS/Tags.css">
  <link rel="stylesheet" type="text/css" href="CSS/Nav.css">
  <link rel="stylesheet" type="text/css" href="CSS/Card.css">
  <link rel="stylesheet" type="text/css" href="CSS/Buttons.css">
  <meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
  <div class="sidenav">

 <h1>&nbspOthers</h1>
 <a href="" style="font-size: 1.1em;font-weight: 900;">MS Excel</a>
 <a href="" style="font-size: 1.1em;font-weight: 900;">MS PowerPoint</a>
 <a href="" style="font-size: 1.1em;font-weight: 900;">MS Word</a>
 <a href="" style="font-size: 1.1em;font-weight: 900;">WordPress</a>
</div>

</body>
</html>

Основной файл

<?php include('index.html'); ?>

Ответы [ 2 ]

0 голосов
/ 14 февраля 2020

Как указано Абольфазл Гаеми :

Вы НЕ должны использовать javascript, чтобы включить свое меню. Вы можете использовать PHP, чтобы просто включить ваш файл меню (но я предлагаю заголовок) на свою страницу:

<?php include('/template/header.html'); ?>

Gulp / Grunt решение в порядке, но я остановлюсь на решении <?php include(); ?> для вашей проблемы.

Говорит ли хост-машина PHP?

Если браузеры могут читать HTML, то просто отлично, чтобы дать Вы веб-страница, они не могут читать PHP. Вместо этого PHP должно быть выполнено чем-то на хост-машине, и вам потребуется интерпретатор PHP для этого, например Apache.

Если вы этого еще не сделали, Я настоятельно рекомендую вам установить или даже полный AMP стек .

PHP в HTML файлах не будет работать

Вы должны убедиться, что ваш файл, используя инструкции PHP, является .php файлами. В противном случае код в вашем теге <?php ?> (код PHP) вообще не будет интерпретироваться.

Убедитесь, что ваш основной файл является файлом .php.

Вы вызываете правильный файл?

Кроме того, вы должны убедиться, что имя файла, которое вы включаете, является правильным. Содержание, как показано в вашем вопросе:

Основной файл

<?php include('index.html'); ?>

, но ваш файл на самом деле index.php не index.html.

HTML красивее с CSS

Если вы хотите «выделить» элемент с классом active, вам понадобится CSS. Вы можете быстро добавить CSS в свой файл с помощью тега <style>. Смотрите пример ниже.

<ul>
<li>Not highlighted</li>
<li>Still not highlighted</li>
<li class="active">Highlighted ! Spotlight's on me baby !</li>
<li>Not highlighted</li>
</ul>

<style>
.active {
  color: red;
  font-weight: bold;
}
</style>
0 голосов
/ 14 февраля 2020

Вы НЕ должны использовать javascript, чтобы включить ваше меню. Вы можете использовать PHP, чтобы просто включить ваш файл меню (но я предлагаю заголовок) на свою страницу:

<?php include('/template/header.html'); ?>

или вы можете использовать предварительные процессоры, такие как Gulp :

@@include('./template/header.html')

var fileinclude = require('gulp-file-include'),
gulp = require('gulp');

gulp.task('fileinclude', function() {
  gulp.src(['index.html'])
    .pipe(fileinclude({
      prefix: '@@',
      basepath: '@file'
    }))
    .pipe(gulp.dest('./'));
});

или Мопс или Хрюканье и ......


О вашей проблеме в комментариях. Допустим, вы находитесь в своей основной папке, и у вас есть эти 3 файла:

index.php
header.html
homepage.html
footer.html

index.php должно быть так:

<?php
include('header.html');
include('hompage.html');
include('footer.html');
?>

и затем в ваших браузерах вы должны открыть индекс . php.

** не используйте индекс. html и индекс. php одновременно.

, если он не работал. вы должны получить ошибку в вашем index.php файле.

когда ваш код работает. Я предлагаю вам использовать readfile () вместо include. если ваши другие файлы просто html и не содержат кодов php.

...