Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   Не происходит выравнивание текста. (https://javascript.ru/forum/css-html/47628-ne-proiskhodit-vyravnivanie-teksta.html)

ОлежкаKiev 01.06.2014 02:17

Не происходит выравнивание текста.
 
Задание:
Создайте Web-страницу, в которой выводится горизонтальная линия с заданными атрибутами (первоначально горизонтальная линия выводится со значениями, которые равны значениям по умолчанию). С помощью радиокнопки можно задать значение атрибута align: left, center или right, с помощью раскрывающегося меню с несколькими цветами можно задать значение атрибута color и с помощью двух текстовых полей можно задать значение атрибутов width и size. При нажатии кнопки "Выполнить" линия (с помощью сценария JavaScript и средств DOM) выводится с заданными значениями атрибутов.

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

<html>
<head>
</head>
<body>
<p id="1">JavaScript</p>
<form name="f">
<input type="radio" name="align" value="left" />Rleft<br />
<input type="radio" name="align" value="center" />Rcentr<br />
<input type="radio" name="align" value="right" />Right<br />
<input type="button" value="Изменить цвет" onclick="document.getElementById('1').style.text-align = 'currentradio' "/>
</form>
<script>
function radiocheck()
{
var currentradio;
if (document.f.align[0].checked) {
currentradio='left';
}
if (document.f.align[1].checked) {
currentradio='center';
}
if (document.f.align[2].checked) {
currentradio='right';
}
}
</script>
</body>
</html>


В чем проблема?А если можно то и решенное задание.Зарание благодарен.

рони 01.06.2014 02:50

Цитата:

Сообщение от ОлежкаKiev
style.text-align

http://htmlbook.ru/css/text-align

рони 01.06.2014 02:57

ОлежкаKiev,
<!DOCTYPE html>

<html>
<head>
  <meta charset="utf-8">

  <title></title>
</head>

<body>
  <p id="1">JavaScript</p>

  <form name="f" id="f">
    <input type="radio" name="align" value="left" checked="checked">Rleft<br>
    <input type="radio" name="align" value="center">Rcentr<br>
    <input type="radio" name="align" value="right">Right<br>
    <input type="button" value="горизонтальное выравнивание текста"
    onclick="document.getElementById('1').style.textAlign = radiocheck()">
  </form><script>
         	function radiocheck()
         	{
         	  var currentradio;
         	  if (document.f.align[0].checked) {
         	    currentradio = 'left';
         	  }
         	  if (document.f.align[1].checked) {
         	    currentradio = 'center';
         	  }
         	  if (document.f.align[2].checked) {
         	    currentradio = 'right';
         	  }
         	  return currentradio
         	}
         </script>
</body>
</html>

ОлежкаKiev 01.06.2014 03:00

Огромное спасибо, а как можно сделать с цветами?У меня была идея сделать с помощью вот такой вот штуки:
<input type="color">
но как после этого сделать что бы код выбраного цвета применился к нашему тексту?

рони 01.06.2014 03:06

ОлежкаKiev,
по ссылке выше найдите color и прочитайте статью .

рони 01.06.2014 03:14

:cray: <input type="color"> может проще селектом
<!DOCTYPE html>

<html>
<head>
  <meta charset="utf-8">

  <title></title>
</head>

<body>
  <p id="1">JavaScript</p>

  <form name="f" id="f">
    <input type="radio" name="align" value="left" checked="checked">Rleft<br>
    <input type="radio" name="align" value="center">Rcentr<br>
    <input type="radio" name="align" value="right">Right<br>
    <input type="button" value="применить стиль для текста"
    onclick="radiocheck()">
    <input type="color" name="color">
  </form><script>
         	function radiocheck()
         	{
         	  var currentradio;
         	  if (document.f.align[0].checked) {
         	    currentradio = 'left';
         	  }
         	  if (document.f.align[1].checked) {
         	    currentradio = 'center';
         	  }
         	  if (document.f.align[2].checked) {
         	    currentradio = 'right';
         	  }
         	  document.getElementById('1').style.textAlign =  currentradio;
              document.getElementById('1').style.color =  document.f.color.value
         	}
         </script>
</body>
</html>

ОлежкаKiev 01.06.2014 03:20

Я чесно скажу что плохо знаю Javascript. ВОт сейчас интерисует такой вопрос:можно ли в кнопку вставить два DOM обьекта. Что бі примерно віглядело так(К ПРИМЕРУ):
<input type="button" value="Изменить цвет" onclick="document.getElementById('1').style.text-align = 'currentradio'+document.getelementbyid('1').style. color='value' "/>

Что бы по нажатию менялся цвет и выравнивание текста.Я там поставил + между эелементами DOМ, но на самом деле я не знаю что нужно ставить что бі их совместить в кнопке.=(Подскажите.И еще интересно как будет там это выглядеть селектом?

ОлежкаKiev 01.06.2014 04:02

Создайте Web-страницу, в которой выводится горизонтальная линия с заданными атрибутами (первоначально горизонтальная линия выводится со значениями, которые равны значениям по умолчанию). С помощью радиокнопки можно задать значение атрибута align: left, center или right, с помощью раскрывающегося меню с несколькими цветами можно задать значение атрибута color и с помощью двух текстовых полей можно задать значение атрибутов width и size.
Я пытался сделать это добавлением строчек :
<input name="input"><br>
document.getElementById('1').style.width = document.f.input.value;
Но не получается ничего=(
<!DOCTYPE html>

<html>
<head>
  <meta charset="utf-8">

  <title></title>
</head>

<body>
  <p id="1">_____________________________________________________________________________________________________________________</p>

  <form name="f" id="f">
    <input type="radio" name="align" value="left" checked="checked">Rleft<br>
    <input type="radio" name="align" value="center">Rcentr<br>
    <input type="radio" name="align" value="right">Right<br>
	<input type="color" name="color"><br>
	<input name="input"><br>
    <input type="button" value="применить стиль для текста"
    onclick="radiocheck()">
   
  </form><script>
         	function radiocheck()
         	{
         	  var currentradio;
         	  if (document.f.align[0].checked) {
         	    currentradio = 'left';
         	  }
         	  if (document.f.align[1].checked) {
         	    currentradio = 'center';
         	  }
         	  if (document.f.align[2].checked) {
         	    currentradio = 'right';
         	  }
         	  document.getElementById('1').style.textAlign =  currentradio;
              document.getElementById('1').style.color =  document.f.color.value;
			  document.getElementById('1').style.width = document.f.input.value;
         	}
         </script>
</body>
</html>

рони 01.06.2014 10:46

ОлежкаKiev,
у вас всё верно - имена лучше давать осмысленно
Цитата:

Сообщение от ОлежкаKiev
id="1"

Цитата:

Сообщение от ОлежкаKiev
name="input"

и единицы измерения незабывать px
чтобы сворачивало текст в <p> вместе с шириной в css overflow: hidden;
про остальное читать тут http://learn.javascript.ru/
http://learn.javascript.ru/styles-and-classes
<!DOCTYPE html>

<html>
<head>
  <meta charset="utf-8">
  <style type="text/css">
  p{
    background-color: rgba(0, 128, 0, 1);
    overflow: hidden;
     color: rgba(255, 255, 0, 1);
  }

  </style>
  <title></title>
</head>

<body>
  <p id="1">_____________________________________________________________________________________________________________________</p>

  <form name="f" id="f">
    <input type="radio" name="align" value="left" checked="checked">Rleft<br>
    <input type="radio" name="align" value="center">Rcentr<br>
    <input type="radio" name="align" value="right">Right<br>
	<input type="color" name="color"><br>
	<input name="input" value="100"><br>
    <input type="button" value="применить стиль для текста"
    onclick="radiocheck()">

  </form><script>
         	function radiocheck()
         	{
         	  var currentradio;
         	  if (document.f.align[0].checked) {
         	    currentradio = 'left';
         	  }
         	  if (document.f.align[1].checked) {
         	    currentradio = 'center';
         	  }
         	  if (document.f.align[2].checked) {
         	    currentradio = 'right';
         	  }
         	  document.getElementById('1').style.textAlign =  currentradio;
              document.getElementById('1').style.color =  document.f.color.value;
			  document.getElementById('1').style.width = document.f.input.value + "px";
         	}
         </script>
</body>
</html>

ОлежкаKiev 01.06.2014 13:42

p{
08
    background-color: rgba(0, 128, 0, 1);
09
    overflow: hidden;
10
     color: rgba(255, 255, 0, 1);
11
  }

что это значит?
Зачем оно?без него никак?

рони 01.06.2014 13:45

Цитата:

Сообщение от ОлежкаKiev
что это значит?

читайте по ссылке во 2 посте
Цитата:

Сообщение от ОлежкаKiev
Зачем оно?без него никак?

можно и без -- но результат будет плохо визуализирован

ОлежкаKiev 01.06.2014 15:32

Ронни я премного благодарен ввам за помощь!Еще остался последний штрих:атрибут size я пробовал сделать это добавлением пары строчек:
<!DOCTYPE html>

<html>
<head>
  <meta charset="utf-8">
  <style type="text/css">
    p{
    overflow: hidden;
     color: rgb(0, 0, 0);
  }

  </style>
  <title></title>
</head>

<body>
  <p id="1">_____________________________________________________________________________________________________________________</p>

  <form name="f" id="f">
    Выберете выравнивение:<br>
    <input type="radio" name="align" value="left" checked="checked">Rleft<br>
    <input type="radio" name="align" value="center">Rcentr<br>
    <input type="radio" name="align" value="right">Right<br>
	Выберете желаемый цвет:
	<input type="color" name="color"><br>
	Введите величину параметра weidth:
	<input name="input" value="100"><br>
	Введите величину параметра size:
	<input name="input2" value="100"><br>
    <input type="button" value="применить стиль для текста"
    onclick="radiocheck()">

  </form><script>
         	function radiocheck()
         	{
         	  var currentradio;
         	  if (document.f.align[0].checked) {
         	    currentradio = 'left';
         	  }
         	  if (document.f.align[1].checked) {
         	    currentradio = 'center';
         	  }
         	  if (document.f.align[2].checked) {
         	    currentradio = 'right';
         	  }
         	  document.getElementById('1').style.textAlign =  currentradio;
              document.getElementById('1').style.color =  document.f.color.value;
			  document.getElementById('1').style.width = document.f.input.value + "px";
			  document.getElementById('1').style.size = document.f.input2.value + "px";
         	}
         </script>
</body>
</html>

Но ничего к сожалению не меняется...что я делаю не так?
Еще заметил что теперь не происходит ВЫРАВНИВАНИЕ ТЕКСТА.

рони 01.06.2014 15:53

Цитата:

Сообщение от ОлежкаKiev
style.size

а size то существует у <p>?
Цитата:

Сообщение от ОлежкаKiev
первоначально горизонтальная линия выводится со значениями, которые равны значениям по умолчанию

вам же линию просили модифицировать
http://htmlbook.ru/html/hr

рони 01.06.2014 15:55

ОлежкаKiev,
на всякий случай как работать с атрибутами
http://learn.javascript.ru/attribute...tom-properties

ОлежкаKiev 01.06.2014 16:02

Цитата:

Сообщение от рони (Сообщение 314279)
а size то существует у <p>?

вам же линию просили модифицировать
http://htmlbook.ru/html/hr

линию, да , а зачем тогда выравнивание? разве эту линию можно ровнять?

рони 01.06.2014 16:24

ОлежкаKiev,
:cray: доку читайте
http://htmlbook.ru/html/hr/align

ОлежкаKiev 01.06.2014 17:11

Думаю теперь ошибка моя в представлении тега <hr>.Но хочу заметить, что width меняется, а цвет ширина и віравнивание - нет.
<!DOCTYPE html>

<html>
<head>
  <meta charset="utf-8">
  <title></title>
</head>

<body>
<form name="2" id="2">
  <hr noshade>
</form>
  <form name="f" id="f">
  Задайте выравнивание линии:<br>
    <input type="radio" name="align" value="left">Rleft<br>
    <input type="radio" name="align" value="center">Rcentr<br>
    <input type="radio" name="align" value="right">Right<br>
	Цвет линии:
	<input type="color" name="color"><br>
	Длинну линии:
	<input name="input" value="100"><br>
	Ширину линии:
	<input name="input2" value="100"><br>
    <input type="button" value="применить стиль для текста"
    onclick="radiocheck()">

  </form><script>
         	function radiocheck()
         	{
         	  var currentradio;
         	  if (document.f.align[0].checked) {
         	    currentradio = 'left';
         	  }
         	  if (document.f.align[1].checked) {
         	    currentradio = 'center';
         	  }
         	  if (document.f.align[2].checked) {
         	    currentradio = 'right';
         	  }
              document.getElementById('2').style.color =  document.f.color.value;
			  document.getElementById('2').style.width = document.f.input.value + "px";
			  document.getElementById('2').style.align =  currentradio;
			  document.getElementById('2').style.size = document.f.input2.value;
         	}
         </script>
</body>
</html>

рони 01.06.2014 17:15

ОлежкаKiev,
вы 14 пост прочитайте и переделайте строки 40 - 43

рони 01.06.2014 17:21

ОлежкаKiev,
:cray: :cray: :cray:
<!DOCTYPE html>

<html>
<head>
  <meta charset="utf-8">
  <title></title>
</head>

<body>

  <hr id="2">

  <form name="f" id="f">
  Задайте выравнивание линии:<br>
    <input type="radio" name="align" value="left" checked="checked">Rleft<br>
    <input type="radio" name="align" value="center">Rcentr<br>
    <input type="radio" name="align" value="right">Right<br>
	Цвет линии:
	<input type="color" name="color"><br>
	Длинну линии:
	<input name="input" value="100"><br>
	Ширину линии:
	<input name="input2" value="100"><br>
    <input type="button" value="применить стиль для текста"
    onclick="radiocheck()">

  </form><script>
         	function radiocheck()
         	{
         	  var currentradio;
         	  if (document.f.align[0].checked) {
         	    currentradio = 'left';
         	  }
         	  if (document.f.align[1].checked) {
         	    currentradio = 'center';
         	  }
         	  if (document.f.align[2].checked) {
         	    currentradio = 'right';
         	  }
              document.getElementById('2').color =  document.f.color.value;
			  document.getElementById('2').width = document.f.input.value + "px";
			  document.getElementById('2').align =  currentradio;
			  document.getElementById('2').size = document.f.input2.value;
         	}
         </script>
</body>
</html>

ОлежкаKiev 01.06.2014 17:26

Огромное спасибо, узнал много чего нового, респект!;)


Часовой пояс GMT +3, время: 12:02.