Jump to content
  • 0

Смена всего стиля страницы(стилевого файла) по нажатию на ссылку


wolfie
 Share

Question

Приветствую, я крайне мало знаком с JAVA и DOM, однако иногда пользовался и тем и другим. Так вот,

У меня возникла идея создавать версию для печати по средствам подгрузки стилевого файла через скрипт (может это и не моя идея :(), создать print.css и менять текущий стиль страницы на него, при том хорошо если динамически, ну или после перезагрузки страницы... Но я понятия не имею, можно ли это сделать и как это сделать... Расчитываю на посильную помощь обитателей форума.

1.

Мне вот кажется не плохим вариант передавать после "?" в адресе что-нибудь вроде слова print (http://wolfie.site/second.html?print) и потом при помощи условной структуры проверять при загрузке, есть ли это слово, и если есть, то использовать print.css, если нет - style.css (но я не знаю как сделать такую структуру)

2.

Второй моей мыслью, более предпочтительной, было менять стиль через DOM "налету", т.е. что-то вроде onClick="innerHTML.стиль='print.css'", только вот я не знаю как обратится к DOM для смены стиля...

Link to comment
Share on other sites

11 answers to this question

Recommended Posts

  • 0

Emm спасибо, я в курсе про media, но хотелось бы всеже, чтобы вид для печати грузился в браузер, а не только сразу в принтер или предварительный просмотр, ато вот так нажмет пользователь "печать" и выползет из принтера страница без графики и вообще принципиально иного дизайна... сюрпризов таких не хотелось бы :/ И в перспективе, я хотел создать 2 версии стилей "в печать" - с рисунками и без них (img {display:none} etc.).. Так что без скриптов похоже не обойдусь

Link to comment
Share on other sites

  • 0

если php, то что-то вроде этого:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1251">
<title>for print</title>
<style type="text/css">
body {
margin:150px 0 0 0;
text-align:center;
}
</style>

<?php
if(!isset($_GET['ver']) || $_GET['ver'] != 'print') $_GET['ver'] = null;
$style = (isset($_GET['ver']) && $_GET['ver'] == 'print') ? 'print.css' : 'default.css';
echo "<link rel="stylesheet" href="" .$style. "" type="text/css">";
?>

</head>
<body>

<?php
echo $to_print = (isset($_GET['ver']) && $_GET['ver'] == 'print') ? '<a href="?"> верcия по умолчанию </a>' : '<a href="?ver=print"> верcия для печати </a>';
?>

</body>
</html>

Link to comment
Share on other sites

  • 0

http://www.alistapart.com/articles/printtopreview/

Даже не читал, но пример работает как нужно.

Мне кажется это перебор, стилей для печати достаточно, в любом браузере есть предварительный просмотр печати, кому нужно посмотрят, большинству пользователей будет достаточно если при печати будет получаться обдуманый документ содержащий все необходимое.

Link to comment
Share on other sites

  • 0

Vlad и Emm (отдельная благодарность за код), но увы, сайт во-первых на бесплатном хостинге, во-вторых PHP я знаю не больше явы...

Jenek спасибо, кажется это то что нужно, буду разбираться

P.S. для саморазвития, те два пути, которые мне пришли в голову, их невозможно реализовать? Нет в ДОМ такого свойства?

Link to comment
Share on other sites

  • 0
P.S.

да, можно написать жабаскрипт и менять стиль налету, воспользовавшись getElementById и setAttribute, я думаю ты сможешь решить задачу самостоятельно - для саморазвития ;)

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy