将ng href添加到angularjs中的按钮会更改按钮内文本的位置
Adding ng-href to a button in angularjs changes the position of the text inside the button
我开始学习Angularjs(使用有角度的材料(,使用ng href有点问题。我在网页顶部制作了一个工具栏,但一旦我将"ng href"属性添加到按钮中,按钮内的文本就不再居中:
示例图像
前两个按钮添加了ng href标记。第三个没有。否则,它们完全相同。
angular.module('angular2',['ngRoute','ngMaterial','ngMessages'])
.config(function ($mdThemingProvider,$routeProvider) {
$mdThemingProvider.theme('default')
.primaryPalette('blue')
.accentPalette('blue');
$routeProvider
.when("/", {
templateUrl : "main.html"
})
.when("/test1", {
templateUrl : "test1.html"
})
.when("/test2", {
templateUrl : "test2.html"
})
})
.controller('mainCtrl',function ($scope, $http, $mdDialog) {
})
;
.navButton{
font-weight: bold;
margin: 0px;
height: inherit;
width: 150px;
border-radius: 0px;
text-transform: none;
border: solid;
}
<!DOCTYPE html>
<html lang="en" ng-app="angular2">
<head>
<meta charset="UTF-8">
<title>Angular 2</title>
<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/angular_material/1.1.0/angular-material.min.css">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,700,400italic">
<link rel="stylesheet" href="https://netdna.bootstrapcdn.com/bootstrap/3.0.3/css/bootstrap.min.css">
<link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">
<link rel="stylesheet" href="app.css">
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.5.5/angular.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.5.5/angular-animate.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.5.5/angular-aria.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.5.5/angular-messages.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular-route.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/angular_material/1.1.0/angular-material.min.js"></script>
<script src="app.js"></script>
</head>
<body ng-controller="mainCtrl">
<div layout="column">
<md-toolbar class="md-menu-toolbar" style="height: 64px">
<div layout="row" style="height: inherit">
<md-toolbar-filler flex="5" style="height: inherit" layout layout-align="center center">
<md-icon class="material-icons md" style="font-size: 48px; height: 48px; width: 48px">mail_outline
</md-icon>
</md-toolbar-filler>
<div flex layout="row" layout-align="start center" style="height: inherit">
<md-button class="md-primary navButton" ng-href="#/">Main</md-button>
<md-button class="md-primary navButton" ng-href="#/test1">Test 1</md-button>
<md-button class="md-primary navButton">Test 2</md-button>
</div>
</div>
</md-toolbar>
<div ng-view></div>
</div>
</body>
</html>
不知怎么的,在添加了ng href属性后,我无法将文本居中放置在按钮中。
我找不到小提琴来重新创建它。但我使用了md按钮指令,通常它对此很有效。您的app.css中可能存在冲突。
当md按钮看到href或ng href时,它将创建一个<a>
标记,并将您的按钮内容放入<span>
中。所以你的
<md-button class="md-primary navButton" ng-href="#/test1">Test 1</md-button>
成为
<a class="md-primary navButton md-button md-ink-ripple"
ng-transclude="" ng-href="#/test1" href="#/test1">
<span class="ng-scope">Test 1</span>
</a>
angular-material.css为<a>
标记提供了一个文本align:center,因此当<span>
位于<a>
内时,请检查css中是否有更改CCD_4属性的内容。
这是我合作过的Fiddle,但与你的不完全一样:https://jsfiddle.net/phanxo14/
我设法解决了这个问题:我没有使用md按钮,而是复制了angular生成的<a>
标签,并直接使用该标签:
<a class="md-primary navButton md-button md-ink-ripple" ng-transclude="" ng-href="#/" style="text-align: center; height:inherit" href="#/" layout>
<span class="ng-scope" flex style="text-align: center">Main</span>
</a>
然后,我将"layout"属性添加到周围的<a>
标记,并将"flex"属性添加至内部<span>
。我真的不知道为什么这是有效的,但文本现在是中心。
编辑:一个更好、更容易的解决方案实际上是添加layout
以及CCD_ 11属性。
相关文章:
- 我想重定向点击,然后更改按钮文本,我该怎么做
- 使用JavaScript将标题文本替换为按钮文本
- 将按钮文本从“;喜欢“;至“;喜欢“;单击时
- 如何在jQuery mobile中更改按钮文本
- 不便更改Javascript中的按钮文本
- 为什么我的导航按钮或按钮文本不会移动到中心
- 根据单选按钮值更改提交按钮文本
- 更改按钮文本
- 按钮文本中的新行
- 在呈现 D3 SVG 对象之前更改引导按钮文本
- 制作一个“;输入“;按钮文本不可编辑
- 通过引导程序加载/重置后更改按钮文本
- 动态创建的按钮文本
- jQuery移动列表过滤:如何更改清除按钮文本
- 如何使用JavaScript在点击时更改按钮文本
- sap.m.按钮文本格式化程序
- AngularJS按钮文本不起作用
- 如何在单击时更改按钮文本
- 使用Jquery仅切换按钮文本中的ASCII字符
- TinyMCE 编辑输入值和按钮文本