2014-01-15 3 views
-1

Я пытаюсь сделать метод, который делает строку, которая имеет изображение в нем для меня моего кода:символа процента не работает в HTML

function makeRow($name,...){ 
    $r = ''; 
    $r .= "<img src=img/mamet.jpg style=padding:3px width=100% height=100% >"; 
    return $r; 
} 

, но вы видите, что немного «%» после того, как ширина и высота?

это не работает :( , кажется, что PHP двойные кавычки и одинарные кавычки имеют проблемы с этим персонажем:% (процент) , что я должен делать я даже попытался это:

\% 
\\% 
"%" 
'%' 

, но до сих пор не работает :(

+1

попробуйте это; '$ r. =" ";' –

+1

@AwladLiton - err. Нет. Это недопустимый CSS. – Quentin

+1

http://validator.w3.org/ было бы хорошим началом. – Quentin

ответ

6

правила CSS должны быть указаны с помощью оператора присваивания в :, а не оператор =. Кроме того, не хватает ; EOL буквального.

Попробуйте следующее:

function makeRow($name,...) 
{ 
    return '<img src="img/mamet.jpg" style="padding:3px; width:100%; height:100%" />'; 
} 
+0

Он использует атрибуты width и height ** **, а не свойства CSS ** **, поэтому вы совершенно неверны, указав, что они должны быть заданы с помощью оператора присваивания::. – NobleUplift

+0

@NobleUplift Не совсем. Они находятся в атрибуте 'style' ... Кроме того, если вы прочитали мой ответ, я сказал, что * правила CSS должны быть указаны с помощью оператора': 'присваивания *. Нигде я не сказал, что атрибуты HTML должны быть ... – BenM

+0

Я полагаю, что я должен был использовать всю цитату, потому что вы это сказали: 'оператор ':' присваивания, а не оператор '='. Разве вы не ссылались на 'width = 100% height = 100%', которые являются атрибутами HTML? – NobleUplift

0

Предполагая, что OP действительно хотел использовать атрибуты вместо свойств CSS:

function makeRow($name,...){ 
    $r = ''; 
    $r .= '<img src="img/mamet.jpg" style="padding:3px;" width="100%" height="100%" >'; 
    return $r; 
} 

Причина этого не будет работать, потому что it is no longer in the HTML spec. Вы не можете использовать проценты в ширину и высоту атрибутов HTML 5.

Вместо этого поместите их в вашем стиле:

style="padding:3px; width:100%; height:100%" 
+0

-1. Зачем показывать ему код, который не сработает? – BenM

+0

Я добавил свойство стиля, которое будет работать. – NobleUplift

0

Попробуйте эту функцию

function imageTag($src, $attr=array(), $style=array()){ 
    $img_tag = '<img src="'.$src.'"'; 
    // check if atributes array is not empty 
    if(count($attr)){ 
     foreach($attr as $name => $value) 
      $img_tag .= ' ' . $name . '="' . $value . '";'; 
    } 
    // check if style array is not empty 
    if(count($style)){ 
     $img_tag .= ' style="'; 
     foreach($style as $name => $value) 
      $img_tag .= $name . ':' . $value . ';'; 
     $img_tag .= '"'; 
    } 

    $img_tag .= ' />'; 
    return $img_tag; 
} 

использование функции:

echo imageTag('images/image.jpg',array('title' => 'Image title', 'alt' => 'image_alt'), array('height' => '100%', 'width' => '100%', 'padding' => '5px')); 
Смежные вопросы