Вам необходимо установить table-layout
явно:
table {
table-layout: fixed;
}
Затем вы можете установить ширину столбца:
th:nth-child(<<the number of which column you want to set the width>>) {
width: <<your desried width>>
}
И если вы хотите установить ширину таблицы займите всю ширину, затем просто установите:
table {
table-layout: auto;
}
То, что вы пытаетесь сделать, это сделать так:
table {
table-layout: fixed;
width: 20%;
}
Используя inline, будет работать следующее:
<table style="width:20%; table-layout: fixed;">
Вот классы ширины, с которыми идет начальная загрузка 4:
w-25 /* width: 25%; */
w-50 /* width: 50%; */
w-75 /* width: 75%; */
w-100 /* width: 100%; */
К которым вы можете обратиться к своей таблице для класса. Например, class="w-25"
Вы также можете применять классы столбцов - col-*
:
<table class="col-3">
Это выполнимо. Я думаю, что существует, вероятно, потеря производительности для того, чтобы сделать ниже, и я уверен, что не покрывал все возможные случаи, но это должно определенно запустить Вас.
use strict;
use warnings;
tie %ENV, 'change_noticer', %ENV or die $!;
$ENV{PATH} .= ":test";
print $ENV{PATH}, "\n";
delete $ENV{PATH};
package change_noticer;
use strict;
use warnings;
use Carp;
use Tie::Hash;
use base 'Tie::StdHash';
sub DELETE {
my $this = shift;
carp "deleting \$ENV{$_[0]}";
$this->SUPER::DELETE(@_);
}
sub STORE {
my $this = shift;
carp "altering \$ENV{$_[0]}";
$this->SUPER::STORE(@_);
}
sub TIEHASH {
my $class = shift;
my $this = bless {}, $class;
while( my ($k,$v) = splice @_, 0, 2 ) {
$this->{$k} = $v;
}
return $this;
}
Ой. Я просто кричал зад. Так или иначе, там предположительно, существует пакет монитора, который позволяет Вам наблюдать изменения, через связь, к существующим переменным. Это походило на интересную проблему, поэтому когда я начал рыть в документацию "связи" в Синем Camel, не было никакого определения для того, что происходит с существующей переменной (т.е. - ссылка сохраняется где-нибудь?). Так, я погуглил для "связи жемчуга "существующую переменную"". К сожалению, ссылка, которую я нашел, была социально недопустима (ограбленный материал), таким образом, меня в значительной степени хлопнули из существования, мудрая репутация.
Удача, все же.
Так или иначе, просто для уточнения, это находится в главе 9 "Усовершенствованного Программирования Perl", глава по "Связи". Удостоверьтесь, что Вы покупаете свою копию с уважаемого сайта :-)
Единственная вещь, о которой я могу думать, состоит в том, чтобы создать связанную названную переменную %ENVIRONMENT
это действует как интерфейс к %ENV
то, что можно сцепиться в. Затем использование удостоверяется, что Вы всегда используете %ENVIRONMENT
вместо %ENV
.
Другая вещь попробовать, читая между строк: вместо того, чтобы назвать "систему (...)" для задач, которые будут выполнены, реализуйте "my_system (...)", который распечатывает среду прежде, чем назвать внешнюю задачу, так, чтобы Вы могли воссоздать одну из задач с "ENV..." команда из командной строки
# show the environment in which an external command runs:
sub my_system
{
print map { $_ . "='" . $ENV{ $_ } . "'\n" } keys( %ENV);
print "'" . join( "' '", @_) . "'\n";
return system( @_);
}
Переменная:: Волшебство, кажется, работает, хотя, в отличие от связанного хеша, это, кажется, не дает Вам значение.
use 5.010;
use Carp qw<carp>;
use Variable::Magic qw<cast wizard>;
my $magic_hash = wizard store => sub {
carp "Hey! They're trying to set $_[-1]!";
};
cast %ENV, $magic_hash;
$ENV{HOME} = '~evilhacker';
И если я позже выхожу из оболочки, это, кажется, правильно устанавливает переменную среды, таким образом, я не просто ударил %ENV
:
say `echo HOME=\$HOME`;
say `echo HOME=%HOME%`;